Re: [問題] 巨集可以用for loop嗎?
※ 引述《think12381 ()》之銘言:
: 請問各位 我想用個巨集去包一個小函數
: 如下
: #define Set_wake_Timer (A)\
: {
: for(k = 0; k<A; k++) \
: for(i = USB_WAKE_UP_PULSE*8; i>0; i--) \
: }
: 之後我呼叫在一個函數中
: Set_wake_Timer(30);
: 為什麼一直出現 syntax error near 'for'
: ' ='
: missing ; before '<'
: 感謝各位
這樣寫 很不好:
假設補完跳脫字元 (\) 讓程式通過編譯
如下調用 Set_wake_Timer :
int A;
A = 20;
:
:
Set_wake_Timer(A++);
這樣 Set_wake_Timer(A++)會被展開為:
{
for(k = 0; k<A++; k++)
for(i = USB_WAKE_UP_PULSE*8; i>0; i--)
}
每做個外循環 A的值都加一
就是迴圈永不結束
老實寫寫成函數吧
若是用C++ 可以多個 inline的關鍵字增加效能
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.158.204
→
05/13 12:58, , 1F
05/13 12:58, 1F
→
05/13 13:57, , 2F
05/13 13:57, 2F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章