其他分享
首页 > 其他分享> > 在c中包含两次头文件

在c中包含两次头文件

作者:互联网

如果我在文件中包含两次iostream或任何其他头文件会怎样?
我知道编译器不会抛出错误.

代码会被添加两次还是内部会发生什么?

当我们包含头文件时实际发生了什么?

解决方法:

Include guard防止编译器实际看到文件的内容两次.

Include guard基本上是一组预处理器的条件指令,位于头文件的开头和结尾:

#ifndef SOME_STRING_H
#define SOME_STRING_H

//...

#endif 

现在,如果您将文件包含两次,则第一次定义宏SOME_STRING_H未定义,因此编译器会处理并查看文件的内容.但是,由于#ifdef之后的第一件事是#define,因此定义了SOME_STRING_H,下一次编译器看不到头文件的内容.

为避免冲突,包含保护中使用的宏的名称取决于头文件的名称.

标签:c,header-files
来源: https://codeday.me/bug/20191005/1857527.html