With g++, compiling the following code will return error: ‘test’ was not declared in this scope
. But Arduino C++ compiler will NOT fail as such. Why? And how can I get gcc/g++ to hoist functions like the Arduino compiler apparently does?
void setup() {
test();
}
void loop() {}
int test() { return 1; }
I've felt for a long time that if Javascript, Perl, etc. can hoist functions, it seems beyond reasonable for the C/C++ pre-processor to allow the same.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…