キーワード_(C言語)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > キーワード_(C言語)の意味・解説 

キーワード (C言語)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/25 20:23 UTC 版)

C言語 > キーワード (C言語)

本記事では、C言語キーワードに関して説明する。

本記事は、あくまでC言語のキーワードに焦点をあてた記事であり、C言語の全体像や、C言語のキーワード以外の面には立ち入らない。ISO/IEC 9899 に沿って記載する。読者の理解を助ける場合は適宜、他のプログラミング言語と比較する説明は行う。なお、1978年発行の書籍『The C Programming Language』(通称K&R、日本語訳は『プログラミング言語C』)第1版にはキーワードの記載が無かったが、1988年の第2版では付録A2.4に「キーワード(予約語)」がある。

Cのキーワードの特徴

キーワード数は以下の通り。

  • K&R第2版 (1988): 32
  • C89/C90: 32
  • C99: 37。_Bool, _Complex, _Imaginary, inline, restrict が追加。
  • C11: 44。_Alignas, _Alignof, _Atomic, _Generic, _Noreturn, _Static_assert, _Thread_local が追加。

基本型[1]、分岐 (if, switch)、反復 (for, while) などの基本的な語は、C++でもほぼそのまま取り入れられている。

型に関するキーワード

C++とほぼ共通の語を使用している。ただし、C99で導入された _Bool, _Complex, _Imaginary, restrict は、C++03以降の規格でもキーワードとなっていない。

整数型

_Bool, char, short, int, long
C99以降では、long は2つ続けて long long とすることで、64ビット以上の幅を持つ1つの型を表す。C99で加わった_Bool型も整数型の一種として扱われ、またtruefalseはキーワードではなく、stdbool.hで定義されるマクロである。

符号の有無

signed, unsigned
signed および unsigned は、整数型の前後に付加することによって符号の有無を指定する。

浮動小数点型

float, double
doublelong と組み合わせて long double 型を表す際にも使用する。

複素数型

_Complex, _Imaginary
C99にて標準化。_Imaginary は厳密には複素数型ではなく虚数型であり、すべての処理系でサポートされるわけではない。これらは直前に浮動小数点型を伴って精度を指定する。

記述例:

double _Complex z = 1.2 + 3.4 * I;

構造体・共用体・列挙体

struct, union, enum
これらは、タグ名を伴ってユーザー定義の型(構造体共用体列挙体)を定義するのに使用する。

記述例:

struct my_type
{
  int a;
  double b;
};

型修飾子

volatile, const, restrict
volatile はコンパイラの最適化を抑止する。
const はオブジェクトが書き換えられないことを明示する。
restrict はオブジェクトへのアクセスが常にそのポインタを用いて行われることを明示する。C99にて標準化。

記憶クラス指定子

auto, extern, static, register
auto は自動記憶域期間 (automatic storage duration) を指定する。関数の引数を除く、ブロックスコープ (block scope) 内のオブジェクト(ローカル変数)にのみ指定可能[2]。ブロックを抜けると寿命が尽きる自動変数の定義に使用する。ただし記憶クラス指定子を省略した場合はデフォルトautoとなるため、事実上使用されていない。B言語auto指定子との互換を意識したもの。C++にも存在するが、C++11で仕様が変更され、型推論の機能に使われるようになったので注意が必要となる。
extern は静的記憶域期間と外部リンケージを指定する。他のモジュール内で定義されている名前を参照する際に使う。変数に指定した場合は、いわゆるグローバル変数となる。
static は静的記憶域期間と内部リンケージを指定する。ファイルスコープ(関数外)の変数または関数と、ブロックスコープ(関数内)の変数に指定可能だが、それぞれ意味が異なる。ファイルスコープの場合は可視性の制限で、externの対となり、static指定した変数や関数は他のモジュールから参照できない。ブロックスコープの場合は静的記憶域期間の指定で、autoの対となり、static指定した変数はプログラムの開始時に一度だけメモリ確保・初期化され、プログラムの終了時に寿命が尽きる静的ローカル変数となる。
register は変数の記憶領域をCPUのレジスタに割り当てる(必ずしも割り当てられるわけではない)。それ以外はautoと同じ。
typedef
型に別名を付ける。これは構文上は記憶クラス指定子に分類されるが、記憶クラスと直接関係はない。

その他の型

void
引数または返却値のない関数の宣言や定義に使用する。また、特定の型を指さないポインタ型にも使用する。

記述例:

void func(void);

int a;
void *p = &a;

制御構造

制御に関する語もC++とほぼ共通であるが、Cには例外処理に関する語(try, catch, throw等)は存在しない。

選択文

if, else
switch, case, default

条件分岐を実現する選択文 (selection statements) に使われる。

反復文

for, while, do

ループを実現する反復文 (iteration statements) に使われる。

ジャンプ文

goto
ラベルの位置に無条件ジャンプする。
continue
ループの本体をスキップし、ブロックの最後にジャンプする[3]
break
ループのブロックから抜け出す。
return
関数から抜け出す。返却値のあるものは値を返す。

マルチスレッド

_Atomic, _Thread_local
C11にて追加
_Alignas, _Alignof
C11にて追加

その他

inline
C99にて標準化。関数指示子に使用することで、関数をインライン展開するためのヒントをコンパイラに与える。

演算子

sizeof
式、またはかっこでくくった型名をオペランドに取る単項演算子として使用する。

アサート

_Static_assert
C11にて追加。コンパイル時の静的表明を提供する。

型ジェネリック

_Generic
C11にて追加

関数指定子

_Noreturn
C11にて追加。関数が return しない(呼び出し元に戻らない)ことを指定。

脚注

関連項目


「キーワード (C言語)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「キーワード_(C言語)」の関連用語

キーワード_(C言語)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



キーワード_(C言語)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのキーワード (C言語) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS