缺少 c++ 函数声明没有错误

问题描述

使用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 会对您感兴趣!