我声明了一个结构数组,并且想要声明第二个我可以复制的内容,以便在每个单元测试开始时重新初始化结构。
所以,我在2个头文件中声明
extern peripheralsArray_t Peripherals;
extern peripheralsArray_t DefaultPeripherals;
和2个c文件
peripheralsArray_t Peripherals =
{... init values };
peripheralsArray_t DefaultPeripherals;
但是,当我尝试分配DefaultPeripherals = Peripherals;
GCC编辑器(在Cygwin下)时说
error: incompatible types when assigning
to type ‘peripheralsArray_t’ from type ‘struct _peripherals *’
为什么它认为Peripherals
是指针?
答案 0 :(得分:2)
假设您的类型名称是描述性的,peripheralsArray_t
确实是数组。
C不支持数组赋值,这是你要做的。
因此,编译器会在RHS上下文中看到一个数组,并推断它应该衰减为指针,然后该指针的类型错误。
答案 1 :(得分:2)
您无法分配数组。我假设peripheralsArray_t
是一个typedef'd数组(这几乎总是一个坏主意)。