home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c      Meh, in C you gotta define EVERYTHING      243,242 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 242,962 of 243,242   
   Keith Thompson to Michael S   
   Re: printf and time_t   
   11 Jan 26 22:47:40   
   
   From: Keith.S.Thompson+u@gmail.com   
      
   Michael S  writes:   
   > On Sun, 11 Jan 2026 11:51:43 -0800   
   > Tim Rentsch  wrote:   
   >> Michael S  writes:   
   [...]   
   >> >         Properties are:   
   >> > a) uint32_t aliased to 'unsigned long'   
   >> > b) 'unsigned int' is at least 32-bit wide.   
   >>   
   >> It seems unlikely that any implementation would make such a   
   >> choice.  Can you name one that does?   
   >   
   > Four out of four target for which I write C programs for living in this   
   > decade:   
   > - Altera Nios2 (nios2-elf-gcc)   
   > - Arm Cortex-M bare metal (arm-none-eabi-gcc)   
   > - Win32-i386, various compilers   
   > - Win64-Amd64,various compilers   
      
   I find that surprising.  I just tried a test program that prints   
   the name of the type uint32_t is an alias for (using _Generic),   
   and it's alias to unsigned int on every implementation I tried.   
   (Your properties are limited to systems with 32-bit int and long.)   
      
   For an implementation where int and long are both 32 bits, it   
   wouldn't have surprised me for uint32_t to be an alias either for   
   unsigned int or for unsigned long, and I wouldn't care either way   
   beyond idle curiosity, but all the implementations I've tried choose   
   to use unsigned int.   
      
   > Well, if I would be pedantic, then in this decade I also wrote several   
   > programs for Arm32 Linux, where I don't know whether uint32_t is alias   
   > of 'unsigned int' or 'unsigned long', few programs for AMD64 Linux,   
   > where I know that uint32_t is an alias of 'unsigned long' and may be one   
   > program for ARM64 Linux that is the same as AMD64 Linux.   
   > But all those outliers together constitute a tiny fraction of the code   
   > that I wrote recently.   
      
   One advantage of my approach is that I don't have to know or care   
   what the underlying type of uint32_t is.   
      
   --   
   Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com   
   void Void(void) { Void(); } /* The recursive call of the void */   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca