如果我有两个文件,如下面
//file1.h
#include "file2.h"
//file2.h
#include "file1.h"
这种循环依赖可能发生在两个以上的文件中,只是为了简单起见,我只列出了两个。在这种情况下会发生什么? 我也有兴趣知道C ++标准是否限制了这种情况的发生。
答案 0 :(得分:4)
标准不限制这种递归。避免使用的常见做法是使用
#ifndef FILE_H
#define FILE_H
// content of the header file
#endif
#pragma once
// content of the header file
请注意#pragma one
虽然受到许多编译器的支持,但并不属于该标准的一部分:
#pragma once
是一种非标准但广泛支持的预处理程序指令