u_int32_t vs uint32_t

Torrey Lyons torrey at mrcla.com
Mon Aug 23 14:50:56 PDT 2004


uint32_t might be preferred, but that does not mean it is defined in 
<sys/types.h> on all platforms. On Darwin one needs to use <stdint.h> 
or <inttypes.h> as suggested in the Solaris 10 documentation. In any 
case, <sys/types.h> is definitely not the right cross platform header 
file and causes build breakage.

--Torrey

At 10:04 AM -0700 8/23/04, Stuart Kreitman wrote:
>Here is a reference to the C99 standard that uint32_t is preferred:
>
>
>http://www.oreillynet.com/pub/a/network/2003/10/07/michael_barr.html
>
>
>With that I'm putting back the update to Wraphelp.c
>
>skk
>Matthieu Herrb wrote:
>
>>Stuart Kreitman wrote:
>>
>>>Matthieu:
>>>The editor "fgsch" made the change to u_int32_t in OpenBSD sources
>>>in April 2002 with your review.  Jim Gettys picked it up this weekend
>>>for the X.ORG next release.
>>>
>>>We need to explain how the typedefs "u_int32_t" vs "uint32_t" 
>>>conform to various
>>>standards in ANSI or ISO.  I do not have access to the OpenBSD 
>>>files, but include
>>>the relevent statements from Solaris:
>>
>>
>>the u_ variants are the traditional types used on BSD systems and 
>>defined by including <sys/types.h>.
>>
>>There is some (limited) previous art of using the u_ types in the X 
>>tree, that's why it looked right to me.
>>
>>Defining a fixed width type in a portable manner can be tricky.
>>I'd suggest include the relevant X header and use CARD32 instead of 
>>u_int32_t / uint32_t. (Even though CARD32 is normally reserved for 
>>the on the wire protocol iirc).


More information about the release-wranglers mailing list