hubertdong 发表于 2014-10-21 06:36:55

宏定义出错

本帖最后由 hubertdong 于 2014-10-23 21:48 编辑

请问:
#define SCK_HdigitalWrite(SCK1,HIGH);这个没问题,
而:
#defineDatadigitalRead(SDO);这个会出错?

Super169 发表于 2014-10-21 09:32:09

兩個都沒問題, 你出了什麼錯?

hubertdong 发表于 2014-10-21 10:15:04

要对digitalRead(SDO);的值进行判断,
if(digitalRead(SDO)) {}没问题,但
if(Data){}就出错,不知何故?

Super169 发表于 2014-10-21 21:43:44

hubertdong 发表于 2014-10-21 10:15 static/image/common/back.gif
要对digitalRead(SDO);的值进行判断,
if(digitalRead(SDO)) {}没问题,但
if(Data){}就出错,不知何故?

這個直接看也看到吧, 你自己想想, if (Data) 把當中的Data 替換後會變成什麼樣.

hubertdong 发表于 2014-10-22 20:57:43

Super169 发表于 2014-10-21 21:43 static/image/common/back.gif
這個直接看也看到吧, 你自己想想, if (Data) 把當中的Data 替換後會變成什麼樣.

那该怎么做呢?

Super169 发表于 2014-10-23 01:02:04

你知道是什麼問題嗎?如果知道的話, 應該會解決的.

如果不知道問題, 才是大問題.....或者你再看看 define 的語法就會明白的.
只是很輕微的錯誤, 也可能是一時錯手吧.但最好可以自己找出來, 好好記住.

hubertdong 发表于 2014-10-23 17:09:07

Super169 发表于 2014-10-23 01:02 static/image/common/back.gif
你知道是什麼問題嗎?如果知道的話, 應該會解決的.

如果不知道問題, 才是大問題.....或者你再看看 defi ...

我很少用#define,请指点!

Super169 发表于 2014-10-23 17:19:44

嘗試取代一次不就清楚了嗎?

#defineDatadigitalRead(SDO);

if (Data) {} 就會變成 if (digitalRead(SDO);) {}


看到問題嗎?

hubertdong 发表于 2014-10-23 21:12:27

Super169 发表于 2014-10-23 17:19 static/image/common/back.gif
嘗試取代一次不就清楚了嗎?

#defineDatadigitalRead(SDO);


程序是:
#define Data digitalRead(SDO);
while(Data);
好像不对,就是出错:
error: expected `)' before ';' token
error: expected primary-expression before ')' token

Super169 发表于 2014-10-23 21:41:31

hubertdong 发表于 2014-10-23 21:12 static/image/common/back.gif
程序是:
#define Data digitalRead(SDO);
while(Data);


本身已經有很清楚的說明, 我也把錯誤的地方給你說出來了, 還看不到問題?   
這是很基本的語法, 如果還是不明白, 我也沒法了.
或者你再認真看看我之前的回覆, 嘗試把問題看出來吧.

hubertdong 发表于 2014-10-23 21:47:50

你太含蓄了!
谢谢你!
发现问题了!#define DatadigaitalRead(SDO); 后面的“;”不能要!!!:L
页: [1]
查看完整版本: 宏定义出错