在用ARM Cortex-M3 的内核时遇到这个问题:
如果有:
#define DEV_CON 0x01
#define DAT_WR_BYTE(x) (0x00000100 | ((x) << 16))
执行以下的语句:
DAT_WR_BYTE(con ? DEV_CON : 0)
看了很久都没看懂"con ? DEV_CON : 0"这个是什么意思,为什么会有个问号?
请大虾们指点迷津!谢啦!
(con ? DEV_CON : 0)=:
if(con) return DEV_CON
else return 0;
呃~~你唤醒了我的记忆!忘记以前学过了!感谢!如果写成这样我就认得:z?x:y
谭浩强的书是这么写的,哈
那么定义成 typedef unsigned int BOOL;
BOOL是什么意思,布尔的意思?那为什么变量要定义成这样,有什么用?
typedef unsigned int BOOL;
BOOL是布尔变量,不是0就是1
不过直接用类型定义,那就是换个马甲
这样定义的BOOL还是unsigned int 的,与语言内建的bool不一样。
第一个我没记错名字的话叫三目运算符
第2个typedef unsigned int BOOL; 是把unsigned int这个类型搞个别的名字出来, 就是BOOL,其实是为了方便,是一样的。