[問題] C中的If判斷式

作者: ArcherState (電費不繳)   2015-03-05 17:07:15
開發平台(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我有分開來解除註解來測試,並非兩行一起跑。
作者: ArcherState (電費不繳)   2015-03-05 17:21:00
後來我理解了,原來if的判斷式就算算1行指令了。
作者: wenyonba (射後不理很XX啊!!!!)   2015-03-05 17:28:00
這是不是應該要引數加括號???
作者: ArcherState (電費不繳)   2015-03-05 21:45:00
什麼意思呀?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-03-05 22:19:00
a, b是引數,引數加括號就是寫成 (a), (b)

Links booklink

Contact Us: admin [ a t ] ucptt.com