在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