前提・実現したいこと
コンパイラのドキュメントを読んでいるのですが、 static_assert がないのかなと思い始めているところです。
ない場合、どのようにしてミスマッチをワーニングで出力させるか、検討しております。
該当のソースコード
他のマイコンのコンパイラでは以下のように配列数を列挙子数のミスマッチをコンパイラで警告させていました。
enum PATTERN_TYPE { PATTERN_A, PATTERN_B, PATTERN_C, PATTERN_COUNT, }; typedef enum PATTERN_TYPE PATTERN_TYPE; typedef int ( *pFUNCTIONS )( void ); static const pFUNCTIONS FunctionsTable[] = { updatePatternA, updatePatternB, updatePatternC }; static_assert( PATTERN_COUNT == ( sizeof( FunctionsTable ) / sizeof( FunctionsTable[0] ), "must match!" );
アドバイスをお願いしたい内容
- ひょとしてマニュアルの読み込み不足でこのコンパイラにはstatic_assert があったりしますでしょうか?
→ C89 を C99に変えると実はあるとか、何か条件があったりするかもと思いドキュメントを読んでいるのですがまだ見つけられていません…
- 上記の方法、特にコンパイラにワーニングを吐かせたいのですが、static_assert以外でワーニングを出す方法をご存知の方がいらっしゃいましたらアドバイス頂けると助かります。
補足情報(FW/ツールのバージョンなど)
CC-RX V2.08.00

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/23 10:35 編集