在Arduino IDE中,我可以使用自定义类型创建变量,但不能从函数返回自定义类型:
这个编译
struct Timer
{
Timer()
{
}
};
Timer t;
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
int main()
{
return 0;
}
这会产生Timer does not name a type
错误:
struct Timer
{
Timer()
{
}
};
Timer get_timer()
{
return Timer();
}
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
int main()
{
return 0;
}
两者都在Orwell Dev-Cpp编译
我使用MEGA-2560
答案 0 :(得分:4)
您可以阅读here关于Arduino IDE的构建过程。
在编译之前,需要将草图转换为有效的C ++文件。
此转换的一部分是为所有函数声明创建函数定义。
在定义Time
之前,这些定义放在文件的顶部。因此,在声明get_timer
时,尚未声明类型Time
。
解决此问题的一种方法是将所有类型定义放在单独的.h
文件中,并将其包含在草图中。