C中单引号中放多个字符

在C中时常有类似这样的写法:

1 #define EVENT_MAGIC 'evnt'
2 int magic = EVENT_MAGIC;

乍一看来,这样的方式有点不理解。听网友说:

C中单引号内最多存4个字符,超过4个就会编译报错,字符数目个数为2,3,4时单引号内数据占用空间都为4字节。即:在对应的字节位置上存储了对应的字符。

 

如该例中,magic的四个字节分别对应字符‘e’ ‘v’ ‘n’ ‘t’。

magic具体的值是多少呢?0x65(e的ascii码值) × 256×256×256 + 0x76 × 256×256 + 0x6E × 256 + 0x74

 

posted @ 2019-04-28 16:14  hunterDing  阅读(715)  评论(0编辑  收藏  举报