Memory-Model Modifiers and Nonmember Functions

The memory-model modifiers can also be used to declare functions. In that context, they specify whether the function call is a far (intersegment) or near (intrasegment) call. Consider the following declaration:

char __far * __far _fstrcpy( char __far *dst, char __far *src );

The preceding code declares a far function ( _fstrcpy ) that takes two arguments of type “far pointer to char” and returns type “far pointer to char.” The declaration can be broken down as follows:

Function returning.

Accepting two arguments of type far pointer to char.

Making a far (intersegment) call to the function named _fstrcpy.

Returning a far pointer to type char.