[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: c/9762: Address of 'char' is incorrect.



stephen.kennedy@havok.com wrote:-

> 	In the example below, '&a' is the address of a local copy of 'a' not of 'a'.
> 	if the type of 'a' is changed to int, it works as expected.

Works as who expected?  Where is the bug?  Please quote which part of
the C standard is violated.  You got an address, why are you unhappy?

Neil.

> #define TA char
> #define TB int
> #define TC int
> 
> void foobar(TA a, TB b, TC c);
> 
> int main()
> {
> 	foobar(1,2,3);
> 	return 0;
> }
> 
> void foobar(TA a, TB b, TC c)
> {
> 	printf("a == %i  claims %x\n", a, &a);
> 	printf("a == %i  really %x\n", (&b)[-1], (&b)-1);
> 	printf("b == %i  %x\n", b, &b);
> 	printf("c == %i  %x\n", c, &c);
> }



Reply to: