看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 沒有 問題(Question): #include<stdio.h> #define maxint(a,b)({int a1=a,b1=b;a1>b1?a1:b1;}) #define max(a,b)(a>b?a:b) int main(){ int i=5,j=6; //printf("%d\n",maxint(i++,j++)); //printf("%d\n",max(i++,j++)); } Printf兩個出來的值會不同,上面的printf會printf出6,下面的會printf出7,請問一下是為什麼? 補充說明(Supplement): 兩行printf我有分開來解除註解來測試,並非兩行一起跑。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.20.228.30 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1425546440.A.D9D.html
ArcherState: 後來我理解了,原來if的判斷式就算算1行指令了。 03/05 17:21
wenyonba: 這是不是應該要引數加括號??? 03/05 17:28
ArcherState: 什麼意思呀? 03/05 21:45
MOONRAKER: a, b是引數,引數加括號就是寫成 (a), (b) 03/05 22:19