C语言在使用三元运算符?:时出现的问题
C语言在使用三元运算符?:时出现的问题
这是一个基础问题,很简单,但是也容易被忽视,所以记录下来以便查看。
今天在写一个宏定义的时候出现了这样一个问题:
#define test(id, able) ((able) ? (id) = 5 : (id) = 7)
在主程序中使用这个宏定义时会报错,例如
void main(void)
{
int x = 1;
test(x, 1);
printf("x = %d\n");
}
此时程序报错
test.c: In function 'main':
t
原创
2020-11-16 13:40:31 ·
688 阅读 ·
2 评论