Arduino IDE:“没有命名类型”,为啥我不能写这段代码? [复制]

Posted

技术标签:

【中文标题】Arduino IDE:“没有命名类型”,为啥我不能写这段代码? [复制]【英文标题】:Arduino IDE: "does not name a type", why can't I write this code? [duplicate]Arduino IDE:“没有命名类型”,为什么我不能写这段代码? [复制] 【发布时间】:2017-11-20 20:56:53 【问题描述】:

那里有很多解释,但所有解释都非常具体且复杂。

谁能告诉我为什么这个简单的代码不能编译?

int varOne, varTwo, varThree;

varOne = 1;
varTwo = 2;
varThree = 3;

void setup() 
// put your setup code here, to run once:



void loop() 
// put your main code here, to run repeatedly:


我在开始时定义了三个变量,然后为每个变量设置了值。 我可能会因为发布此内容而受到很多讨厌,但那里根本没有明确的解释。

【问题讨论】:

【参考方案1】:

在文件范围内,即在任何函数之外,你可以定义变量(包括它们的初始化)和其他东西,但你不能写像赋值这样的任意语句。

所以你可以写...

int varOne=1, varTwo=2, varThree=3;

是定义和初始化,而

int varOne;
varOne = 1;

是一个定义(合法)后跟一个赋值,这在文件范围内是非法的。

【讨论】:

好的,谢谢,这正是我需要的。我想其中一些问题必须在您自学时提出。【参考方案2】:

您不能更改 setup 或 run 方法之外的任何变量,除非您同时定义它们。这是arduino的做事方式,这只是一个问题,因为后台代码都被隐藏了,否则,你可以做同样的事情。我建议:

int var1 = 1, var2 = 2;

或者把它放在设置中:

int var1, var2;

void setup() 
    var1 = 1;
    var2 = 2;

希望对你有帮助!

【讨论】:

以上是关于Arduino IDE:“没有命名类型”,为啥我不能写这段代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥arduino uno只能保留两位小数

基于Arduino IDE的ESP8266 ESP8266编程问题

Arduino map() 方法 - 为啥?

“Arduino不适合大学生”这种说法对不对?为啥?

为啥我会收到此错误? “[variable] 没有命名类型”在 C++ 中用于 std::string 数组,即使它已被包含并且在同一范围内

Arduino软件IDE简介