首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >定义struct并用作参数

定义struct并用作参数
EN

Stack Overflow用户
提问于 2015-03-23 08:50:43
回答 1查看 158关注 0票数 1

我正在开发我的Arduino项目,这是我唯一使用的C/C++编译器。我不明白为什么我不能在函数参数上使用struct作为类型。

不确定这是特定于Arduino编译器设计,还是一般的C/C++编程。

代码语言:javascript
代码运行次数:0
运行
复制
struct myStruct_t {
    byte var1;
    byte var2;
    };

myStruct_t myStruct;

void setup() {

}

void loop() {

}


void myFunc(myStruct_t *myVar) {
    int i = 0;
}

这会导致编译器错误:

错误:变量或字段'myFunc‘声明为空

错误:未在此范围内声明'myStruct_t‘

错误:未在此范围内声明'myVar‘

如果我注释掉"myFunc“的声明,它就会按原样编译。我不清楚为什么我可以声明和使用该结构的变量,但是我可以将该结构用作参数类型。"struct“类型不能作为参数使用的类型吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-23 08:51:30

因为在c中你需要使用typedef来实现这一点,否则你需要使用struct来引用结构。

我建议不要使用typedefing,也不要使用结构名称中的_t,但如果您希望这样做,请执行以下操作

代码语言:javascript
代码运行次数:0
运行
复制
typedef struct myStruct_t {
    byte var1;
    byte var2;
} myStruct_t;

并且不使用全局变量,将变量作为参数传递。

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

https://stackoverflow.com/questions/29201740

复制
相关文章

相似问题

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