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.