[问题] 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