在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