A.1.4 値を変更しない初期化変数はconst宣言をする

初期値のある変数は、通常、起動時にROMエリアからRAMエリアに転送して、RAMエリアを使って処理を行います。このため、プログラム内で値が不変な初期化データの場合、確保したRAMエリアが無駄になります。初期化データにconst演算子をつけておくと、起動時のRAMエリアへの転送が抑止され、使用メモリ量の節約になります。

また初期値は変更しない、というルールでプログラムを作成すると、ROM化が容易になります。

【改善前記述例】

char a[] = { 1, 2, 3, 4, 5 };

初期値をROMからRAMへ転送して処理を行います。

【改善後記述例】

const char a[] = { 1, 2, 3, 4, 5 };

ROM上の初期値を使用して処理を行います。