callt関数であることをコンパイラに示唆します。
[機能]
-  | #pragma calltを指定した関数を,callt命令で呼び出します。 
callt命令は,callt命令テーブルと呼ばれる領域(0x80~0xBF)に「関数定義の先頭アドレス」が格納された関数を,直接関数を呼ぶよりも短いコードで呼ぶことを可能にします。  | 
 
-  | callt関数の呼び出しには,関数名の先頭に”@_”を付加したラベル名を使用し,callt命令で呼び出します。 
関数末尾でcallt関数を呼び出す場合,callt命令での呼び出しにならない場合があります。  | 
 
-  | 呼ばれる関数は,C ソース中において,通常の関数と同様に扱います。  | 
 
-  | __near指定となり,アドレス参照は必ずnearポインタを返します。  | 
 
-  | callt関数は再配置属性TEXTのセクションへ配置します。  | 
 
-  | callt命令テーブルはセクション.callt0に配置します。  | 
 
-  | __farキーワードを付加した関数であっても,警告なしで,__nearを指定したものとして扱います。  | 
 
-  | 同一関数に対して#pragma callt,#pragma near,#pragma farが重複した場合は,#pragma callt > #pragma near > #pragma farの優先度で#pragmaが有効になります。  | 
 
[効果]
-  | 2バイト・コール命令での関数呼び出しとなるため,オブジェクト・コードのサイズが小さくなります。  | 
 
[方法]
-  | 関数の最初の宣言より前で#pragma calltを宣言します。  | 
 
#pragma callt [(]関数名[,...][)] 
 | 
 
[制限]
-  | 同一関数に対し複数の宣言があり,2度目以降の宣言に作用する位置に#pragma calltを記述した場合,動作を保証しません。#pragma calltは宣言より前に記述してください。  | 
 
-  | 同一関数に対し#pragma near,#pragma far以外の#pragmaを指定すると,コンパイル・エラーとなります。  | 
 
-  | 本#pragma指令の対象となる関数の宣言に__inline,および__calltを指定すると,コンパイル・エラーとなります。  | 
 
[使用例]
#pragma callt callt_func1 
extern void callt_func1(void); 
  
void func1(void) 
{
        callt_func1(); 
          : 
} 
  
#pragma callt callt_func2 
extern void __far callt_func2(void);  // #pragma calltの影響で,警告なしで__nearになります 
  
void func2(void) 
{
        callt_func2(); 
          : 
} 
 | 
 
[備考]
-  | キーワード__calltと#pragma calltの違いについて  | 
 
-  | __calltキーワードは,__farキーワードとの混在を許さずコンパイル・エラーとなります。  | 
 
-  | #pragma calltは,__farキーワードを付加した変数でも警告なしで__calltを指定したものとして扱います。  |