「キーワード」は C コンパイラで特別な意味を持つ単語です。移動のフェーズ 7 および 8 ではID が同じスペルを使用してC. のキーワードと競合することはできません。( プリプロセッサの参照 の 移動のフェーズ の説明を参照してください ; 識別子の詳細については識別子 を参照してください)。C 言語では次のキーワードを使用します :
自動 |
double |
int |
struct |
break |
else |
long |
switch |
case |
enum |
登録 |
typedef |
char |
extern |
return |
union |
const |
float |
short |
unsigned |
continue |
for |
Signed |
void |
default |
goto |
sizeof |
volatile |
do |
if |
static |
while |
キーワードは再定義できません。ただしC プリプロセッサ ディレクティブ を使用してコンパイルする前にキーワードを置き換えるテキストを指定できます。
Microsoft 固有の仕様 →
ANSI C 規格では2 種類の先頭にアンダースコア () を使用して識別子がコンパイラの実装のために予約します。したがってMicrosoft の規則はアンダースコアおよび Microsoft 固有のキーワードの名前を指定します。これらの予約語を識別子名として使用することはできません。二つのアンダースコアの使用を含む識別子を名前付けに関する ANSI の規則については識別子 を参照してください。
次のキーワードと特別な識別子はMicrosoft C コンパイラで認識されます :
__asm |
dllimport2 |
__int8 |
naked2 |
__based1 |
__except |
__int16 |
__stdcall |
__cdecl |
__fastcall |
__int32 |
スレッド 2 |
__declspec |
__finally |
__int64 |
__try |
dllexport2 |
__inline |
__leave |
|
1.__based のキーワードが 32 ビットと 64 ビットのターゲット コンパイルの制限されています。
2.これらは指定して使用した場合は特別な識別子です__declspec。; 他のコンテキストの使用は制約されません。
Microsoft 拡張機能は既定で有効になっています。プログラムが完全に移植性の高いであることを確認するには/Za オプション (ANSI 互換のコンパイル) を指定するとコンパイル時の Microsoft 拡張機能を無効にできます。この場合Microsoft 固有のキーワードが無効になります。
Microsoft 拡張機能を有効にするとプログラム内に示したキーワードを使用できます。ANSI 準拠ではこれらのキーワードのほとんどは二つのアンダースコアで始まります。したがって4 種類の例外 dllexportdllimportnaked と スレッド は __declspec にのみ使用され先頭に二つのアンダースコアは必要ではありません。下位互換性のためにキーワードの他の単一のアンダースコアのバージョンがサポートされています。
終了 Microsoft 固有の仕様→