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.

Example

int     x;
static long     l = (long)&x + 1;       //The upper-order 2 bytes of &x do not change