问题描述
使用g++,编译以下代码会返回error: ‘test’ was not declared in this scope
。但是 Arduino C++ 编译器将不会失败。为什么?我怎样才能让 gcc/g++ 像 Arduino 编译器那样提升函数?
void setup() {
test();
}
void loop() {}
int test() { return 1; }
很长一段时间以来,我一直觉得如果 Javascript、Perl 等可以提升函数,那么 C/C++ 预处理器允许这样做似乎是不合理的。
解决方法
我想您可能需要一个额外的预处理器。我个人从未尝试过,但也许 protoize 会对您感兴趣!