我發現,剛工作正常Ç而造成(在Windows上)在有條件的宏定義變量提供錯誤
#define NO_PROBLEM
#ifdef NO_PROBLEM
char charBuf[16];
unsigned int numBuf;
#endif
void setup() {
}
void loop() {
}
的Arduino的問題,這個代碼只是正常工作的問題。但是,如果我改變
#define NO_PROBLEM
到
//#define NO_PROBLEM
編譯器會出現以下錯誤返回:
core.a(main.cpp.o): In function main: C:\Users\user\arduino-1.0.4-windows\arduino-1.0.4\hardware\arduino\cores\arduino/main.cpp:5: undefined reference to setup C:\Users\user\arduino-1.0.4-windows\arduino-1.0.4\hardware\arduino\cores\arduino/main.cpp:15: undefined reference to loop
這是一些調試宏的一部分,我想有些變量在那裏只在DEBUG模式下,所以實際上NO_PROBLEM在我的代碼中是DEBUG。
然後將使用這些變量的每一行都包裝到一個'#ifdef ...#endif'中。 – 2013-10-21 17:39:30
Hi @ H2CO3l。問題不在於我試圖在未定義的地方使用變量。我只是試圖在宏中使用它,像這樣在同一個地方定義。 #define DEBU' '#ifdef DEBUG char charBuf [16]; unsigned int numBuf; 的#define initDebug(){Serial.begin(115200);} 的#define debugPrint(消息){Serial.write(消息);} 的#define debugPrintInt(消息)\ {\ numBuf =消息; \ 串行.WRITE(itoa(numBuf,charBuf,10)); \} 的#else 的#define initDebug(){} 的#define debugPrint(消息){} 的#define debugPrintInt(消息){} #endif' –