TIPS:
1.宏定义是在注释之后解析的,所以不能用宏定义来替代注释里面的内容,也不能宏定义//以及/*这些符号;
2.宏定义都有生命周期(比如可移植代码中的一些的开关或参数“重载”),用#define和#undef 来控制,最后真正用上的应该是最后生存下来的那个值。如:
- #define X 1
-
#define Y X*2
-
#undef X
-
#define X 2
-
-
//y = 4
-
int y = Y;
3.无值的宏定义(比如可移植代码中的一些编译开关)不能作为值赋给变量,编译会通不过;
4.#pragma pack(n) 和 #pragma pack() 用来开关自定义的对齐边界。真正对齐时是按照n和变量默认对齐值中较小的一个来。
5.#error是用来中断编译输出信息的一个指令,比如代码没编完,可以用这个标记一下。编译器会告诉我们是在哪个文件的哪一行。如
6.##的用法比较特殊,他可以连接两段字符,拼接后再由编译器解析。
阅读(1584) | 评论(0) | 转发(0) |