Chapter 04

予約語(C言語)

naoyoshinori
naoyoshinori
2025.03.20に更新

予約語(C言語)

C言語の予約語(Reserved Words)は、プログラミング言語の中で特別な意味を持つ単語で、変数名や関数名として使用できないキーワードです。これらはC言語の文法や動作を定義するためにコンパイラが認識するもので、データ型、制御構造、メモリ管理など、プログラムの基本的な構成要素を制御する役割を果たします。以下に、C言語の予約語をカテゴリごとにグループ化し、表形式で整理しました。

1. データ型関連

予約語 説明
signed 符号付き型
unsigned 符号なし型
char 文字型
short 短整数型
int 整数型
long 長整数型
float 単精度浮動小数点型
double 倍精度浮動小数点型
void 型なしまたは空
_Bool 真偽値型(C99以降)
_Complex 複素数型(C99以降)
_Imaginary 虚数型(C99以降)
  • _Bool, _Complex, _Imaginary はC99で追加された型で、古いコンパイラ(C89/C90)では使用不可。組み込みでは対応していない場合も多いので注意。
  • void は関数の戻り値なしやポインタの汎用型(例: void *)に使われる。

2. 型修飾子

予約語 説明
const 定数を定義(変更不可)
volatile 変数の最適化を抑制
restrict ポインタの制限(C99以降、最適化用)
  • volatile は組み込みで必須。ハードウェアレジスタや割り込みで変化する値を扱う際に使用(例: volatile int *reg)。
  • restrict はポインタのエイリアシングを防ぎ、最適化を助けるが、組み込みではあまり使われない。

3. 制御構造

予約語 説明
if 条件分岐
else if文の代替条件
switch 多分岐制御構文
case スイッチ文の分岐ラベル
default スイッチ文のデフォルトケース
for forループ
while whileループ
do do-whileループ
break ループやスイッチ文の終了
continue ループの次のイテレーションへ移行
goto 指定ラベルへのジャンプ
return 関数の戻り値
  • goto は可読性を下げるため避けるべきだが、組み込みではエラー処理(例: リソース解放)に使われることがある。
  • switch は整数値のみ対応(文字列不可)。

4. 記憶クラス指定子

予約語 説明
auto 自動変数の宣言(デフォルト)
extern 外部変数や関数の宣言
register レジスタ変数の提案
static 静的変数や関数の定義
  • auto はほぼ使われない(ローカル変数はデフォルトでauto)。
  • static は変数のスコープをファイル内に限定したり、値を保持したりするのに便利(例: カウンタ)。
  • register は現代のコンパイラでは効果が薄く、使用頻度が低い。

5. 構造体・共用体・列挙型

予約語 説明
struct 構造体
union 共用体
enum 列挙型
typedef 型の別名定義
  • union は同じメモリ領域を複数の型で共有。組み込みで通信データのパースに有用。
  • typedef は長い型名を簡潔に(例: typedef unsigned int uint32_t)。

6. 演算子・関数関連

予約語 説明
sizeof オブジェクトのサイズを返す演算子
inline インライン関数の提案(C99以降)
  • sizeof はデータ型のバイト数を確認するのに必須(例: sizeof(int))。
  • inline は小さな関数の呼び出しオーバーヘッドを削減するが、コンパイラが無視する場合もある。