...
Code Block | ||||
---|---|---|---|---|
| ||||
unsigned int *g(void) { volatile uintptr_t iptr = 0xdeadbeef; unsigned int *ptr = (unsigned int *)iptr; /* ... */ return ptr; } |
Exceptions
INT36-C-EX1: A null pointer can be converted to an integer; it takes on the value 0. Likewise, the integer value 0 can be converted to a pointer; it becomes the null pointer.
INT36-C-EX2: Any valid pointer to void
can be converted to intptr_t
or uintptr_t
or their underlying types and back again with no change in value. Use of underlying types instead of intptr_t
or uintptr_t
is discouraged, however, because it limits portability.
...