我正在尝试将我们的代码从一个 IDE 转换为在另一个 IDE 中使用。当前使用 gcc,它允许从变量数组初始化此结构。新工具不使用 gcc 给我一个错误“无法为灵活数组成员指定初始化程序”。那么有人可以帮助我了解如何设置吗?我应该设置一个可变大小的空白数组,然后在某处分配#define 数组,如下所示?
下面是代码示例……(这是当前实现的当前 IDE)
在一个构建可切换的头文件中,我们可以在不同的硬件平台上构建它,我们有以下#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”的类型不同,不同设计上的引脚顺序也不同。