プログラムに、さまざまな型のサイズを記述するルックアップ テーブルが必要です。今、私はそれを次のように取得しました:
typedef struct{
APP_InterfaceType_t Type; //This is just an enum
uint8_t Size;
}APP_InterfacesLUT_t;
APP_InterfacesLUT_t MyLUT[] = {...}
ここでの問題は、異なる .h ファイルから LUT の内容を挿入したい (理由があります) ことです。これはプリプロセッサで行う必要があります。
別々の .h ファイルでさまざまなタイプを取得しました。ビルドにこれらの .h ファイルの 1 つを含めると、タイプ (.h ファイルに記述されている) とサイズが魔法のように LUT に表示されます。
.h ファイル内である種のマクロを呼び出すことでこれが可能かどうか疑問に思っていますか?
例えば:
REGISTERTYPE(type, size);
編集: LUT が定義されているモジュールは、型について何も知りません。アイデアは、プログラムに新しいタイプを追加したいときは、ヘッダーファイルを含めるだけでよく、プログラムの残りの部分では何も編集しないということです:)