Defect Report #057

Submission Date: 07 Jun 93
Submittor: Project Editor (P.J. Plauger)
Source: Fred Tydeman
Question 1
Must there exist a user-accessible integral type for every pointer? If an implementation provides 48-bit pointers, must there be an integral type, such as long or int, that is at least 48 bits? Parts of the C Standard that may help answer the question follow:
Subclause 6.3.4, Cast operators, page 45, lines 30-34 and Footnote 45:
A pointer may be converted to an integral type. The size of integer required and the result are implementation-defined. If the space provided is not long enough, the behavior is undefined.
An arbitrary integer may be converted to a pointer. The result is implementation-defined.45 [Footnote 45: The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to be consistent with the addressing structure of the execution environment.]
Response
Integral types and pointer types are incommensurate. An implementation need not provide an integral type that can accept the conversion from a pointer type without loss of information.
Previous Defect Report < - > Next Defect Report