| 
 near/far関数(#pragma near/#pragma far) 【V1.05以降】 
 | 
__near/__farを指定した関数であることをコンパイラに示唆します。
[機能]
-  | #pragma nearを指定した関数を,__near指定の関数として呼び出します。  | 
 
#pragma nearを指定した関数のアドレス参照は必ずnearポインタを返し,関数は再配置属性TEXTのセクションへ配置します。
__nearについてはメモリ配置領域指定(__near/__far)を参照してください。
-  | #pragma farを指定した関数を,__far指定の関数として呼び出します。  | 
 
#pragma farを指定した関数のアドレス参照は必ずfarポインタを返し,関数は再配置属性TEXTFのセクションに配置します。
__farについてはメモリ配置領域指定(__near/__far)を参照してください。
-  | #pragma nearを指定した関数は,__callt,__farキーワードを付加した関数であっても,警告なしでキーワードを無視します。  | 
 
callt関数としたい場合は#pragma nearではなく#pragma calltを指定してください。
-  | #pragma farを指定した関数は,__callt,__nearキーワードを付加した関数であっても,警告なしでキーワードを無視します。  | 
 
-  | 同一関数に対して#pragma callt,#pragma near,#pragma farが重複した場合は,#pragma callt > #pragma near > #pragma farの優先度で#pragmaが有効になります。  | 
 
[方法]
-  | 関数の最初の宣言より前で#pragma near/#pragma farを宣言します。  | 
 
#pragma near [(] 関数名 [,...][)] 
#pragma far [(] 関数名 [,...][)] 
 | 
 
[制限]
-  | 同一関数に対し複数の宣言があり,2度目以降の宣言に作用する位置に#pragma near/#pragma farを記述した場合,動作を保証しません。#pragma near/#pragma farは宣言より前に記述してください。  | 
 
-  | 同一関数に対し#pragma callt,#pragma near,#pragma far以外の#pragmaを指定すると,コンパイル・エラーとなります。  | 
 
-  | 本#pragma指令の対象となる関数の宣言に__inlineを指定すると,コンパイル・エラーとなります。  | 
 
[使用例]
#pragma near func1,func3 
#pragma far  func2,func3         // func3は#pragma nearが優先されます 
  
extern void func1(void);         // #pragma nearの影響で,警告なしで__nearになります 
extern void __near func2(void);  // #pragma farの影響で,警告無しで__farになります 
extern void __callt func3(void); // #pragma nearの影響で,警告なしで__nearになります 
                                 // 警告なしで__calltは無効になります 
  
void  main(void) 
{
    func1( ); 
    func2( ); 
    func3( ); 
      : 
} 
 | 
 
[備考]
-  | キーワード__near / __far と #pragma near/#pragma farの違いについて  | 
 
-  | #pragma near/#pragma far は複数の関数に対して同時に指定できます。  | 
 
-  | __farキーワードは__calltキーワードや__nearキーワードとの混在を許さずコンパイル・エラーとなります。  | 
 
-  | #pragma near/#pragma far は警告なしで__callt/__near/__farキーワードを無効とします。  |