次の方法で共有


C キーワード

"キーワード" は、C コンパイラに対して特別な意味を持つ単語です。 変換フェーズ 7 および 8 では、識別子は、C キーワードと同じスペル (大文字と小文字を区別する) にすることはできません (『プリプロセッサ リファレンス』の「変換の段階」の説明を参照してください。識別子の詳細については、「識別子」を参照してください)。 C 言語では、次のキーワードを使用します。

auto

double

int

struct

break

else

long

switch

case

enum

register

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 固有のキーワード名には先頭にアンダースコアを 2 つ付けることになっています。 したがって、これらの単語を識別子名として使用することはできません。 二重アンダースコアの使用など、識別子の名前付けに関する ANSI の規則については、「識別子」を参照してください。

次のキーワードと特殊な識別子は、Microsoft C コンパイラで認識されます。

__asm

dllimport 2

__int8

naked2

__based1

__except

__int16

__stdcall

__cdecl

__fastcall

__int32

thread 2

__declspec

__finally

__int64

__try

dllexport2

__inline

__leave

 

1. __based キーワードには、32 ビットおよび 64 ビット ターゲット コンパイルに関する使用制限があります。

2. これらは、__declspec で使用するときは特殊な識別子です。他のコンテキストでの使用は制限されていません。

Microsoft 拡張機能は既定で有効になっています。 完全に移植性のあるプログラムにするには、/Za オプション (ANSI 互換性用にコンパイル) を指定してコンパイル中に Microsoft 拡張機能を無効にできます。 これにより、Microsoft 固有のキーワードが無効になります。

Microsoft 拡張機能を有効にするときは、先に示したキーワードをプログラム内で使用できます。 ANSI 準拠の場合、これらのキーワードのほとんどは二重アンダースコアで始まります。 4 つの例外、dllexport、dllimport、naked、および thread は、__declspec のみで使用されます。したがって、先頭に二重アンダースコアは必要ありません。 残りのキーワードについては、下位互換性のために、アンダースコア 1 文字のバージョンがサポートされます。

END Microsoft 固有の仕様

参照

概念

C の要素