摘要:
1. #运算符 (1)#运算符用于在预处理期将宏的参数转换为字符串 (2)#的转换作用是在预处理期完成的,因此只在宏定义中有效,即其他地方不能用#运算符 (3)用法:#define STRING(x) #x printf("%s\n",STRING(Hello World!));//注意,Hello 阅读全文
摘要:
1. #error 的用法 (1)#error 是一种预编译器指示字,用于生成一个编译错误消息 (2)用法:#error message //注意:message 不需要用双引号包围 (3)#error 编译指示字用于自定义程序员特有的编译错误消息。类似的,#warning 用于生成编译警告消息 ( 阅读全文
摘要:
C语言中的条件编译的行为类似于 C 语言中的 if…else…,是预编译指示命令,用于控制是否编译某段代码 。 1.条件编译的本质 (1)预编译器根据条件编译指令有选择的删除代码 (2)编译器不知道代码分支的存在 (3)if…else…语句在运行期进行分支判断 ,条件编译指令在预编译期进行分支判断 阅读全文
摘要:
1. C 语言中的宏定义 (1)#define 是预处理器处理的单元实体之一(因此,预处理器只是简单的进行替换,并不(2)#define 定义的宏可以出现在程序的任意位置(包括函数体的内部)(3)#define 定义之后的代码都可以使用这个宏 2. 定义宏常量 (1)#define 定义的宏常量可以 阅读全文
摘要:
1.C语言中的链接器 (1)每个 C 语言源文件被编译后生成目标文件,这些目标文件最终要被链接在一起生成可执行文件。 (2)链接器的主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。 2.静态链接 由链接器在链接时将库的内容直接加入到可执行程序中 ①编译静态库源码:gcc 阅读全文