gpt4 book ai didi

编译器认为 struct 是指向 struct 的指针

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:56 25 4
gpt4 key购买 nike

我声明了一个结构数组,并想声明一个我可以复制到其中的第二个结构,以便在每个单元测试开始时重新初始化该结构。

所以,我在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是一个指针?

最佳答案

假设您的类型名称是描述性的并且peripheralsArray_t 确实是一个数组

C 不支持数组赋值,而您正试图这样做。

因此编译器在 RHS 上下文中看到一个数组并推断它应该衰减为一个指针,然后指针的类型错误。

关于编译器认为 struct 是指向 struct 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com