1.为什么要用 #ifndef 和 #pragma once?
当我们做大的项目时,需要用到多文件操作,在写的过程中,会不小心把同一个头文件include多次,或者头文件嵌套。例如:
one.h中包含two.h
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/75723a1f7c3073cca0f81e9da86ca890.png)
two.h中包含one.h
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/681050601664d5d073d40b7f14d7d500.png)
main.c中使用其中的头文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4ce2ca61303a1f353ee8bfa97fd9601a.png)
编译运行后,会出现如下错误:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d54b9df13a16cf3f83a1a905fae6c966.png)
总结:为了避免同一个头文件被多次包含,C/C++中有两种处理方式。第一种是用 #ifndef 声明定义,第二种是用 #pragma once 声明定义。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。
2.#ifndef的用法