[EMAIL PROTECTED] 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 via email to