【C语言】预处理器——条件编译指令的使用

预编译指令:

(1)引入头文件的两种方式

  • #include <> :使用尖括号,预编译器会到系统路径下去寻找该头文件。
  • #include " " :使用双引号,预编译器会先在当前文件所在目录下查找该头文件;如果没有找到,就回去系统路径下查找。

(2)写在.h头文件中的条件编译指令

#ifndef 标记名
#define 标记名

函数声明、结构体的声明、类的声明等

#endif

上述指令的意思就是:在预编译阶段如果没有定义标记名、就定义标记名并将函数声明、结构体声明、类声明等拷贝到引入该头文件的文件中;如果定义了该标记,就结束该预编译指令
**注意:该指令和#ifdef #define #endif 相反,但都是成对出现的

(3)正确代码示例:

sum.h文件

#ifndef SUM_H
#define SUM_H
extern int sum(int a, int b);


#endif

sum.c/sum.cpp文件

#include "sum.h"
int sum(int a, int b)
{
    
    
	return a + b;
}

main.c/main.cpp文件

#include "sum.h"

int main()
{
    
    
	int a = 10;
	int b = 20;
	int c = sum(a , b);
	return 0;
}

(4)多个文件重复使用一个头文件的编译链接期间的逻辑图

在这里插入图片描述

(5)总结

#ifndef 标记名
#define 标记名

函数声明、结构体的声明、类的声明等

#endif

  • 使用该指令,预编译器可以在预编译阶段帮助我们,处理重复包含的头文件。防止了头文件的重复拷贝造成的空间浪费。

Guess you like

Origin blog.csdn.net/xiaoxiaoguailou/article/details/121245514