预处理指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预处理指令相关的知识,希望对你有一定的参考价值。
预处理指令在编译之前,由编译器执行,预处理结果作为编译器的输入。主要功能:把其他文件包含到当前文件、定义符号常量和宏、程序代码的条件编译以及预处理指令的条件执行。
预处理指令包括:#include, #define, #error, #if, #else, #elif, #endif, #ifdef, #ifndef, #undef, #line, #pragma
1、#include指令
作用:指示编译器将该指令所指出的另一个源文件嵌入该指令所在的程序中。
文件名使用尖括号:在指定目录中寻找被包括的文件
文件名使用双引号:在被编译的程序所在目录中寻找被包括的文件
2、#define指令
定义符号常量或宏,一般形式为:
#define 符号常量标识符 字符串
#define 宏标识符 字符串
程序中的宏标识符在编译前只是被完全的文本替代。
#define PI 3.1415926
#define CIRCLE_AREA1(x) (PI * (x) * (x))
#define CIRCLE_AREA2(x) (PI * x * x)
调用area = CIRCLE_AREA1(c+2), 预处理后为 area = (3.1415926 * (c+2) * (c+2))
调用area = CIRCLE_AREA2(c+2), 预处理后为 area = (3.1415926 * c+2* c+2)=(3.1415926 * c) + (2 * c) +2
3、#if, #else, #endif, #ifdef, #ifndef指令
#if常量表达式
程序段1
#else
程序段2
#endif
若#if指令后的常数表达式为true,编译程序段1;否则,编译程序段2
#ifdef, #ifndef指令分别相当于#if define和#if!define
以上是关于预处理指令的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段
你如何在 python 中处理 graphql 查询和片段?