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上の初期値を使用して処理を行います。