|
|
jacob navia said:
> Keith Thompson wrote:
>> jacob navia <jacob@xxxxxxxxxx> writes:
<snip>
>>> Yes, but the character is promoted to int only for passing it
>>> to printf. The expected argument is a char, not an int
>>
>> Are you saying there's something wrong, or even unexpected, with this?
>>
>> #include <stdio.h>
>> int main(void)
>> {
>> int c = '\n';
>> printf("%c", c);
>> return 0;
>> }
>>
>> The expected argument normally has a value that's representable as an
>> unsigned char, but its expected type is int.
>>
>
> The expected argument of the printf formatting option!
>
> That's what I am talking about. Obviously your example
> will work.
>
> printf("%c",12345678);
>
> will not!
It is certainly true that it is not guaranteed to work. It is not
guaranteed *not* to work, however. On systems with CHAR_BIT >= 24, it
/will/ work (although heaven knows what character will be printed!).
--
Richard Heathfield <http://www.cpax.org.uk>
Email: - www">http://www. +rjh@
Google users: < www.cpax.org.uk/prg/writings/googly.php">http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
|
|