コンテンツにスキップ

C言語/キーワードの分類

出典: フリー教科書『ウィキブックス(Wikibooks)』

C23言語キーワードの分類表

[編集]

C23言語の仕様に基づいて、キーワードを種類別に分類しました。一部のキーワードは複数のカテゴリに属するため、2回以上登場しています。

ストレージクラス指定子 (Storage-class Specifiers)

[編集]
キーワード 説明
auto 自動ストレージ期間を持つローカル変数(デフォルト)
register レジスタに格納することを推奨するローカル変数
static 静的ストレージ期間を持つ変数、関数のスコープを制限
extern 別のファイルで定義された変数や関数の参照
typedef 新しい型名(データ型の別名)を定義
thread_local スレッド固有の変数を定義(C23で_Thread_localから変更)

型指定子 (Type Specifiers)

[編集]
キーワード 説明
void 値を返さない関数の戻り型、または型なしポインタ
char 文字またはバイト型(1バイト)
short 短い整数型
int 整数型
long 長い整数型
float 単精度浮動小数点型
double 倍精度浮動小数点型
signed 符号付き数値型(デフォルト)
unsigned 符号なし数値型
bool ブール型(C23で_Boolから変更)
_BitInt 精度を指定できる整数型(例:_BitInt(32)
_Complex 複素数型
_Imaginary 虚数型
_Decimal32 32ビット10進浮動小数点型
_Decimal64 64ビット10進浮動小数点型
_Decimal128 128ビット10進浮動小数点型
typeof 式の型を表す型指定子
typeof_unqual 修飾子を除いた式の型を表す型指定子

型修飾子 (Type Qualifiers)

[編集]
キーワード 説明
const 変更不可能な変数を宣言
volatile コンパイラの最適化を抑制し、常に最新の値にアクセス
restrict ポインタが他のポインタと同じメモリ領域を参照しないことを保証
_Atomic アトミック操作を行う変数を宣言

制御フロー (Control Flow)

[編集]
キーワード 説明
if 条件分岐
else if文の代替条件
switch 多方向分岐
case switch文内の個別の場合
default switch文内でどのcaseにも一致しない場合の処理
for 初期化・条件・更新式を持つループ
while 条件に基づくループ
do 後置条件を持つループ(少なくとも1回は実行)
break ループまたはswitch文から抜ける
continue ループの次の反復へスキップ
goto 指定したラベルにジャンプ
return 関数から値を返して終了

構造体・共用体関連 (Structures and Unions)

[編集]
キーワード 説明
struct 構造体型の定義
union 共用体型の定義
enum 列挙型の定義
sizeof 型やオブジェクトのサイズを返す演算子

インライン関数 (Inline Functions)

[編集]
キーワード 説明
inline 関数呼び出しの代わりに関数のコードを挿入するよう提案

アラインメント指定子 (Alignment Specifiers)

[編集]
キーワード 説明
alignas 変数のメモリアラインメントを指定(C23で_Alignasから変更)
alignof 型やオブジェクトの要求アラインメントを取得(C23で_Alignofから変更)

定数 (Constants)

[編集]
キーワード 説明
true 真のブール値(値1)
false 偽のブール値(値0)
nullptr ヌルポインタ定数(C23で追加)

その他の修飾子・キーワード (Other Specifiers/Keywords)

[編集]
キーワード 説明
static 配列引数のサイズヒント、関数内の静的変数
extern 関数プロトタイプで使用される場合の外部リンケージ
_Noreturn 関数が呼び出し元に戻らないことを示す
_Generic 式の型に基づいて選択を行う型ジェネリック式
constexpr コンパイル時に評価できる式や関数(C23で追加)
static_assert コンパイル時のアサーション(C23で_Static_assertから変更)