OT: Requesting C advice

Mike McCarty Mike.McCarty at sbcglobal.net
Thu May 24 09:54:02 UTC 2007


Michael Hennebry wrote:
> On Wed, 23 May 2007, Mike McCarty wrote:
> 
> 
>>Michael Hennebry wrote:
>>
>>>On Wed, 23 May 2007, George Arseneault wrote:
>>>
>>>
>>>
>>>>Now the bad news... C, C++, gnu, several variations on
>>>>the ISO; not to mention all the libraries, etc.  And,
>>>>to top it off, some of the stuff in the book just
>>>>doesn't work.  (A program to demonstrate the various
>>>>types of integer variables and how to display them
>>>>with printf(), failed to show any difference with any
>>>>arguments I could find.)
>>>
>>>
>>>Should they have produced different results?
>>
>>On big-endian machines, they can. For example, with two's complement
>>arithmetic on a big-endian machine,
>>
>>printf("%d\n",-2);
>>
>>does not result in
>>
>>-2
> 
> 
> It should.
> printf, declared or not, will look for an int and get it.
> 
> printf("%u\n", -2);
> is more interesting.
> We might be in the domain of nasal demons.
> printf("%u\n", (unsigned)-2);
> Is legal, but rather obviously will not print "-2\n".
> It will probably print something even regardless of endianness.

No, I gave an incorrect example, sorry.

long int	Li;

Li = -2;

printf("%d\n",Lu);

on a 16 bit two's complement big endian machine may result in

-1

Mike
-- 
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
Oppose globalization and One World Governments like the UN.
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!




More information about the fedora-list mailing list