我正在尝试了解预处理器语法。它的代码非常简单,可以返回“ ON”或“ OFF”。但是,我对这种情况到底是什么完全感到困惑?
我理解C的条件语句如下:
? x : y
如果条件?返回-替换? x或y表示这行代码如下:
#define ONOFF(a) ((a) ? "ON" : "OFF")
我不明白这里必须满足什么条件?条件a必须不是null吗?
最佳答案
True
和Flase
可以更完美地表示为1
或0
。如我所见,你已经宣布
#define ONOFF(a) ((a) ? "ON" : "OFF")
您的条件是
(a)
,如果true
的值不为零,则为a
;如果a
为0,则为false。在您的程序中,这意味着
int a=1;
char *str;
str=ONOFF(a);
发生的替代是
int a=1;
char *str;
str=((a) ? "ON" : "OFF")// here a=1
因为这里
a
是1
并且1
为true,str获得值ON
。如果a
为0,则str将获得值OFF
关于c - 预处理程序C宏语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37321919/