あるIDEから別のIDEで使用するためにコードを変換しようとしています。現在のものは、この構造を変数配列から初期化できるようにするgccを使用しています。新しいツールはgccを使用しないため、「フレキシブル配列メンバーに初期化子を指定できません」というエラーが表示されます。それで、誰かが私がこれを設定する方法を理解するのを手伝ってくれるでしょうか?可変サイズの空白の配列を設定してから、以下に示すようにどこかに#define配列を割り当てる必要がありますか?
コードの例を次に示します…(これは現在の実装の現在のIDEです)
ビルド切り替え可能である1つのヘッダーファイルには、さまざまなハードウェアプラットフォームでこれをビルドできるため、次の#defineがあります。
#define GPIOS \
/* BANK, PIN, SPD, MODE,… */
GPIOINIT( A, 0, 2, AIN, …) \
GPIOINIT( A, 1, 2, AIN, …) \
GPIOINTINIT(A, 2, 2, AIN, …) \
.
.
.
次に、すべてのビルドで使用される別のヘッダーファイルに
PLATFORM_CONFIG_T g_platformConfig = {
.name = {PLATFORM_NAME},
(bunch of other stuff),
.allGpios = {
GPIOS /* here I get the error */
},
};
だから私はエラーラインを可変配列にして後で他の方法でそれに割り当てることができると思っていますか?問題は、実際のアレイ「GPIO」のタイプが異なり、異なるデザインのピンの順序が異なることです。