[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); > }