首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译器认为struct是指向struct的指针

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

Stack Overflow用户
提问于 2011-11-29 09:34:15
回答 2查看 139关注 0票数 0

我声明了一个结构数组,并希望声明第二个结构,以便在每次单元测试开始时重新初始化结构。

因此,我在两个头文件中声明

代码语言:javascript
复制
extern peripheralsArray_t Peripherals;  
extern peripheralsArray_t DefaultPeripherals;

和2个c文件中

代码语言:javascript
复制
peripheralsArray_t Peripherals =
{... init  values };
peripheralsArray_t DefaultPeripherals;

但是,当我尝试分配DefaultPeripherals = Peripherals;时,GCC剧组(在Cygwin的带领下)说

代码语言:javascript
复制
error: incompatible types when assigning 
       to type ‘peripheralsArray_t’ from type ‘struct _peripherals *’

为什么它认为Peripherals是一个指针?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-29 09:37:41

假设您的类型名是描述性的,并且peripheralsArray_t实际上是一个数组。

C不支持数组赋值,而这正是你想要做的。

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

票数 2
EN

Stack Overflow用户

发布于 2011-11-29 09:39:47

不能赋值给数组。我假设peripheralsArray_t是一个类型定义的数组(这几乎总是一个坏主意)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8304756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档