Platform independent size_t Format specifiers in c? -
I want to print a type of type Size_t is the nickname for different variable types on different architectures. For example, the following code on a machine (64-bit) does not throw any warning:
Size_t size = 1; Printf ("size is% ld", size); But the above code on my other machine (32-bit) generates the following warning message:
WARNING: Expecting format '% ld' Long intestine ', but type' size_t * 'in logic 3
I suspect that this indicator is due to the difference in size, so that my 64-bit machine size_t is placed in long intervals ( "% ld" ), while my 32-bit machine is aliased for the second type on size_t is .
z length modifier: size_t size = (four) of size; Printf ("size is% zd \ n", size is); // decimal size_tprintf ("size is% zx \ n", size is); // hex size_t The other length modifiers available are hh (for char ), h < For Code> Short , L (for long ), ll ( for long time ), j (for intmax_t ), t (for ptrdiff_t ), and L See <§7.19.6.1 (7) of the C99 standard for ( for a long time )
Comments
Post a Comment