printf format specifiers

Der Herr Hofrat der.herr@mail.hofr.at
Sun Oct 20 07:14:00 GMT 2002


> Hi,
> 
> I have the following line in one of my programs:
> 
> printf("%d\n", *string);
> 
> *string is a pointer to a string.  The above line prints out the ASCII
> decimal equivalent of the character that the pointer is pointing to.  This
> is what I was looking to accomplish.
> 
> My question is why?  Why wouldn't I need to use the %hu (unsigned short
> integer) format specifier?  When I do use the %hu, I get precisely the same
> results.  This despite the fact that %d reads an entire word and %hu reads a
> single byte.

I guess you would see a difference if you would use ascii chars above 127 as 
the one would change sign the other would not - and hu would read a short
which is 2bytes instead of 4 but I don_t see why %hu should read one byte 
only.

hofrat



More information about the Gcc-help mailing list