[EMAIL PROTECTED] writes: |> #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);
There is nothing in the C standard that requires that (char*)(&b-1) == &a. They are distinct objects, thus not comparable, and &b-1 by itself is already invalid. Andreas. -- Andreas Schwab, SuSE Labs, [EMAIL PROTECTED] SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."