4.1.8.1 Initialization by address calculation
When a static variable is initialized as follows, addition and subtraction affects only the lower-order 2 bytes.
((Integer type cast) Address constant) ± Integer type constant
This specification is valid only when -ansi is not used.
int x;
static long l = (long)&x + 1; //The upper-order 2 bytes of &x do not change
|