組み込みC/C++

C/C++リテラシー向上のためのページ

#define をconstにすべきか?

 C++の教科書を見ると定数は#defineを使用しないでconstを使用する事を推奨しています。しかし組み込みシステムではいささか疑問が残ります。多くの人が経験するように組み込みシステムのリソースは常に逼迫しています。出来るだけオブジェクトの容量は小さくすませたいのです。今までdefineとして使っていた定数をconstに書き直したら、すべて実体を生成しROMを圧迫してしまいます。

 

組み込みシステムでは

・通し番号であるならばenumに書き直す。

・限定的なファイルで使用する定数であるならば、非公開ヘッダをフォルダ内に作成しそこに宣言する。

 

といった対処方法が懸命ではないでしょうか、無理してdefineをconstに置き換える必要はないかと思います。