型修飾子、記憶クラス指定子
この記事では、変数型の前につく、型修飾子、記憶クラス指定子についてのまとめを記載する。
1. 目的
・型修飾子、記憶クラス指定子について知る。
・型修飾子、記憶クラス指定子の種類についてまとめる。
目次
2. 型修飾子とは
・変数宣言時に変数の性質を明示的に指定するために使用される。
型修飾子の種類
型修飾子 | 説明 |
---|---|
const | 変数が読み取り専用であることを示す。変数の値は変更できず、コンパイラが最適化を行いやすくする。 |
volatile |
コンパイラの最適化の対象外とする。変数の値が外部から変更される可能性がある。 |
restrict | ポインタが指し示すメモリ領域に対する別のポインタが存在しないことを示す。 |
※restrictは使用しない方がよいらしい。(MISRA C:2012により)
3. 記憶クラス指定子
変数や関数のメモリ割り当てと寿命を制御するための指定子。
記憶クラス指定子の種類
指定子 | 説明 |
---|---|
auto | ローカル変数のデフォルト指定子。通常は省略可能。 |
register |
レジスタ変数として割り当てることを要求する指定子。 |
static |
静的変数と静的関数を宣言するための指定子。 静的変数はメモリに保持され、初期化された値を保持し続ける。 他のファイルからはアクセスできない。 |
extern |
外部変数と外部関数を宣言するための指定子。 他のファイルからアクセス可能とする。 |
typedef |
新しい型の別名を作成するための指定子。 新しい型名を宣言する際に使用される。 |
_Thread_local |
C11およびC++11以降で使用可能な指定子。 スレッドローカル変数を宣言するためのもの。 各スレッドが独自の値を持つ変数を作成できる。 |
詳細に関しては下記記事を参照
・C言語基礎知識9(typedef) - Project_OKI’s diary
・C言語基礎知識10(extern宣言) - Project_OKI’s diary
・C言語基礎知識34(静的変数、static修飾子について) - Project_OKI’s diary
その他
データ型に関しては下記記事の 7.そのほか を参照
→組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・STM32マイコン_2(UART通信:TeraTermにHellow表示) - Project_OKI’s diary
・STM32マイコン_3(UART通信:複数文字送信) - Project_OKI’s diary