2016.3.15
【待整理,很久了忘了为什么写的这么乱】
printf();函数只识别第一个参数,即格式字符串,对于后一个参数,如你不指定,则当作32位的int来处理.
此时进行符号扩展,变成32位,如上所得.
printf(“%x\n”, (unsigned char)ch);同样是上面的原因.把他当作signed char定义,可是输出时转化为unsigned
故输出8位.(-1的机内补码表示为全1,即ffffffffH)
20170419
#ifdef THEMACRO 等同于 #if defined THEMACRO
所以有:
#ifdef THEMACRO1
...
#elif defined THEMACRO2
...
#endif