C语言的#define N 3,2的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:17:35
N取的是哪个的值
这题的全部的问题是 若有宏定义“#define N 3,2",表达式15>>N的值是多少?

#define N 3,2
将N替换成3,2
那15>>N就是15>>3,2
因为逗号运算符顺序最低,故最后结果为2
#define只是是简单的字符串替换,不需要考虑其他问题

结果:2

逗号表达式
15>>N ==> 15>>3,2 ==> 1,2 ==>>2
其实啥都不用看,逗号表达式,直接取最后一个2就行了!

15>>N 等价于15>>3,2
表达式(15>>3,2)的值是2

这属于一个逗号表达式,取值是最后面的值,所以就是2了

15>>N ===> 15>>3, 2