我使用术语"双链接",因为我不知道实际的短语是什么,或者是否有一个,但假设你有两个标题head1.h和head2.h,包含这些内容:
在head1.h:
#include"head2.h"
//do stuff
Run Code Online (Sandbox Code Playgroud)
在head2.h中:
#include"head1.h"
//do stuff
Run Code Online (Sandbox Code Playgroud)
我将它想象成两个彼此相对放置的镜子,因为它不是一个无限循环,而是一些其他形式的无限进入有限的计算机(但我离题).关键是,是否存在使用这一概念或这一概念的变体有用或必要的情况?(即:我想goto可以用作即兴休息).
通常,头文件具有预处理程序语句,以防止此类事件导致无限递归:
#ifndef MY_FILE_H
#define MY_FILE_H
//do stuff
#endif
Run Code Online (Sandbox Code Playgroud)
即使有这种保护,相互包含通常也是一个坏主意.