小编9sv*_*en6的帖子

Arduino/C++ 枚举声明位置相关

我正在开发我的第一个 arduino 项目,在那里我遇到了以下我想理解的行为。以下代码编译没有问题:

enum TestEnum {TestValue1};
void test(){}
void setup(){}
void loop(){}
void foo(TestEnum &testArg) {}
Run Code Online (Sandbox Code Playgroud)

但交换前两行

void test(){}
enum TestEnum {TestValue1};
void setup(){}
void loop(){}
void foo(TestEnum &testArg) {}
Run Code Online (Sandbox Code Playgroud)

编译时会出现以下错误:

D:\Path\to\Arduino-Sketches\foo\foo.ino:5:10: error: variable or field 'foo' declared void
 void foo(TestEnum &testArg) {}
          ^~~~~~~~
D:\Path\to\Arduino-Sketches\foo\foo.ino:5:10: error: 'TestEnum' was not declared in this scope
D:\Path\to\Arduino-Sketches\foo\foo.ino:5:10: error: note: suggested alternative: 'isalnum'
D:\Path\to\Arduino-Sketches\foo\foo.ino:5:20: error: 'testArg' was not declared in this scope
D:\Path\to\Arduino-Sketches\foo\foo.ino:5:20: error: note: suggested alternative: 'test'
 void foo(TestEnum &testArg) {}
                    ^~~~~~~
                    test …
Run Code Online (Sandbox Code Playgroud)

c++ enums arduino

3
推荐指数
1
解决办法
84
查看次数

标签 统计

arduino ×1

c++ ×1

enums ×1