Namespaces
Variants

C keywords

From cppreference.net
< c

これはC言語の予約キーワードの一覧です。これらは言語によって使用されているため、これらのキーワードは再定義できません。 例外として、これらは attribute-token s 内では予約語とは見なされません。 (C23以降)

alignas (C23)
alignof (C23)
auto
bool (C23)
break
case
char
const
constexpr (C23)
continue
default
do
double
else
enum

extern
false (C23)
float
for
goto
if
inline (C99)
int
long
nullptr (C23)
register
restrict (C99)
return
short
signed

sizeof
static
static_assert (C23)
struct
switch
thread_local (C23)
true (C23)
typedef
typeof (C23)
typeof_unqual (C23)
union
unsigned
void
volatile
while

_Alignas (C11) (C23で非推奨)
_Alignof (C11) (C23で非推奨)
_Atomic (C11)
_BitInt (C23)
_Bool (C99) (C23で非推奨)
_Complex (C99)
_Decimal128 (C23)
_Decimal32 (C23)
_Decimal64 (C23)
_Generic (C11)
_Imaginary (C99)
_Noreturn (C11) (C23で非推奨)
_Static_assert (C11) (C23で非推奨)
_Thread_local (C11) (C23で非推奨)

アンダースコアで始まる最も一般的なキーワードは、通常、それらの便利なマクロを通じて使用されます:

キーワード 使用用途 定義場所
_Alignas (C11) (C23で非推奨) alignas (C23で削除) stdalign.h
_Alignof (C11) (C23で非推奨) alignof (C23で削除) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) マクロなし
_Bool (C99) (C23で非推奨) bool (C23で削除) stdbool.h
_Complex (C99) complex complex.h
_Decimal128 (C23) マクロなし
_Decimal32 (C23) マクロなし
_Decimal64 (C23) マクロなし
_Generic (C11) マクロなし
_Imaginary (C99) imaginary complex.h
_Noreturn (C11) (C23で非推奨) noreturn stdnoreturn.h
_Static_assert (C11) (C23で非推奨) static_assert (C23で削除) assert.h
_Thread_local (C11) (C23で非推奨) thread_local (C23で削除) threads.h

一部のキーワードは非推奨ですが、互換性のために代替スペルとして保持されています。これらはキーワードが使用できる場所であればどこでも使用できます。

キーワード 代替表記
alignas (C23) _Alignas (C11) (C23で非推奨)
alignof (C23) _Alignof (C11) (C23で非推奨)
bool (C23) _Bool (C99) (C23で非推奨)
static_assert (C23) _Static_assert (C11) (C23で非推奨)
thread_local (C23) _Thread_local (C11) (C23で非推奨)

これらのキーワードの綴り、代替形式、または true および false が事前定義マクロとして実装されているかどうかは未規定です。

二重下線 __ または下線 _ の後に大文字が続く名前は予約されています。詳細は identifier を参照してください。

ディグラフ <% %> <: :> %: 、および %:%: 標準トークンを表現する代替手段 を提供することに注意してください。

以下のトークンは、プリプロセッサディレクティブの 内部 で使用された場合に preprocessor によって認識されます:

if
elif
else
endif

ifdef
ifndef
elifdef (C23)
elifndef (C23)
define
undef

include
embed (C23)
line
error
warning (C23)
pragma

defined
__has_include (C23)
__has_embed (C23)
__has_c_attribute (C23)

以下のトークンは、プリプロセッサディレクティブの 外部 で使用された場合にプリプロセッサによって認識されます:

_Pragma (C99)

**翻訳結果:**

_Pragma (C99)

**説明:** - HTMLタグ、属性、` `タグ内のC++キーワード`_Pragma`は翻訳対象外 - `(C99)`はC言語の規格バージョンを示すため翻訳対象外 - 元のフォーマットと構造を完全に保持

以下の追加キーワードは拡張機能として分類され、条件付きでサポートされます:

asm
fortran

HTMLタグ、属性、および` `タグ内のテキストは翻訳せず、元のフォーマットを保持しました。C++固有の用語も翻訳していません。

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 6.4.1 キーワード (p: 53)
  • J.5.9 fortranキーワード (p: 601)
  • J.5.10 asmキーワード (p: 601)
  • C17規格(ISO/IEC 9899:2018):
  • 6.4.1 キーワード(p: 42-43)
  • J.5.9 fortranキーワード(p: 422)
  • J.5.10 asmキーワード(p: 422)
  • C11規格 (ISO/IEC 9899:2011):
  • 6.4.1 キーワード (p: 58-59)
  • J.5.9 fortranキーワード (p: 580)
  • J.5.10 asmキーワード (p: 580)
  • C99規格 (ISO/IEC 9899:1999):
  • 6.4.1 キーワード (p: 50)
  • J.5.9 fortranキーワード (p: 514)
  • J.5.10 asmキーワード (p: 514)
  • C89/C90 標準 (ISO/IEC 9899:1990):
  • 3.1.1 キーワード
  • G.5.9 fortran キーワード
  • G.5.10 asm キーワード

関連項目