预编译又称为预处理,是做些代码文本的替换工作
预编译
精选 转载lihaichuan 博主文章分类:c语言
就是为编译做的预备工作的阶段
主要处理#开始的预编译指令
预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。常见的预编译指令有:
(1)#include 指令
该指令指示编译器将xxx.xxx文件的全部内容插入此处。若用<>括起文件则在系统的INCLUDE目录中寻找文件,若用" "括起文件则在当前目录中寻找文件。一般来说,该文件是后缀名为"h"或"cpp"的头文件。
注意:<>不会在当前目录下搜索头文件,如果我们不用<>而用""把头文件名扩起,其意义为在先在当前目录下搜索头文件,再在系统默认目录下搜索。
(2)#define指令
该指令有三种用法:
第一种是定义标识,标识有效范围为整个程序,形如#define XXX,常与#if配合使用;
第二种是定义常数,如#define max 100,则max代表100(这种情况下使用const定义常数更好,原因见注1);
第三种是定义"函数",如#define get_max(a, b) ((a)>(b)?(a):(b)) 则以后使用get_max(x,y)就可以得到x和y中较大的数(这种方法存在一些弊病,见注2)。
(3)#if、#else和#endif指令
这些指令一般这样配合使用:
#if defined(标识) //如果定义了标识
要执行的指令
#else
要执行的指令
在头文件中为了避免重复调用(比如说两个头文件互相包含对方),常采用这样的结构:
#if !(defined XXX) //XXX为一个在你的程序中唯一的标识符,
//每个头文件的标识符都不应相同。
//起标识符的常见方法是若头文件名为"abc.h"
//则标识为"abc_h"
#define XXX
真正的内容,如函数声明之类
#endif
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
rknn预编译 预编译函数
作者| 张翰(门柳) 出品|阿里巴巴新零售淘系技术部 本文知识点提炼: 1、如何使用 Emscripten 把 C++ 编译成 wasm。 2、如何使用 wasi-sdk 把 C++ 编译成 wasm。 3、如何运行编译好的 wasm 包。 WebAssembly 是一个 W3C 推出的二进制指令格
rknn预编译 js中立即执行函数会预编译吗 WebAssembly github 实例化