C++/C 编译

1.头文件包含顺序:

头文件:

(1)包含当前工程所需要的自定义文件。

(2)包含第三方程序库头文件。

(3)包含标准头文件。

 

源文件:

(1)包含该源文件对应的头文件。

(2)包含当前工程所需要的自定义文件。

(3)包含第三方程序库头文件。

(4)包含标准头文件。

 

2.宏定义

(1)为文件作用域。

(2)不要用宏来定义新类型,需要用typedef。

(3)宏定义里加注释使用/**/,不使用//。

(4)调试宏#ifdef xxx等价于#if define(xxx)。

(5)预编译伪指令#error可以将后面字符输出到屏幕。

(6)预编译伪指令#pragma用于执行语言所定义的动作,如#pragma pack(push, 8) 对象成员对齐,#pragma warning(disable, 4069) 屏蔽4096号编译告警,

#pragma comment(lib, "kernel32.lib") 连入一个库文件。

(5)构串操作符#只能修饰带参数的宏的形参,将实参的字符序列(不是实参的值)转换为字符串,如:

#define STR(x) #x #x "xx"'

int abc = 100;

STR(abc) => "abcabcxx"

(6)合并操作符##将左右的字符序列合并成一个新的标识符,不是字符串,如:

#define CLASSNAME(name) class##name

CLASSNAME(test) => classtest(必须要前面有定义,否则编译报错)

 (6)预编译符号常量:

_FILE_ :引用该符号语句的源文件名称

_LINE_:引用该符号语句的代码行号

posted @ 2017-11-16 23:56  一种微笑  Views(127)  Comments(0)    收藏  举报