奇思妙想 · 2024年 4月 18日 0

为什么会有头文件循环依赖?

144 次浏览

有头文件的编程语言体系中,头文件的本意是给其他文件提供基本的类型、声明或者宏等讯息供参考,让编译器知晓这些类型讯息。一般的原则是,越是common的头文件会被其他头文件依赖,即xxx.h很可能会包含common.h. 但定义common以及不同头文件的依赖很可能陷入一个困境,大家都想要对方头文件的讯息,这就出现了头文件循环依赖。

  • 一种解法是更好地规划头文件。
  • 另外一种解法,C/ObjC/C++都提供前向声明解决循环依赖。例如C语言的struct xxx, ObjC的@class xxx, C++的class xxx.