4.1.5.2 Casting far address to near address and then converting to far address

When a static variable is initialized as follows, loss of the upper-order 2 bytes due to a cast to a near pointer does not occur.

 

(Cast to four or more bytes)(Cast to near pointer)(far address constant)

 

This specification is valid only when -strict_std is not used.

Example

int     __far x;
static long     l = (long)(int __near*)&x;      //far address is stored in l