1. 宏提供了一种对组成C程序的字符进行变换的方式。
2. assert宏,它的参数是一个表达式,如果该表达式为0,就使程序终止执行,并给出一条适当的出错信息。
3. __FILE__, __LINE__ 是内建与C语言预处理中的宏,它们会被扩展为所在文件名和所处代码行的行号。
4. 移位运算符
如果被移位的对象是无符号数,那么空出的位将被0填充。如果移位的对象是有符号数,那么C语言实现既可以用0填充空出的位,也可以用符号位的副本填充空出的位。
编程者如果关注向右移位时空出的位,那么可以将操作的变量声明为无符号类型,那么空出来的位都会被设置为0.
5. 在C语言中,不可能做到在单次操作中将某个数值中的所有位都移出。举例来说,如果一个int类型的整数是32位,n是一个int类型数,那么n << 31和n << 0这样写是合法的,而n << 32 和n << -1 这样写是非法的。
6. null指针并不指向任何对象,因此,除非是用与赋值或比较运算,出于其他任何目的的使用null指针都是非法的。