#include
。我知道为了安全起见,你可以在使用另一个文件中声明的东西时使用它。但有时我发现我可以删除 #include
,但所有内容仍然能够成功编译。据我所知,这是因为其他已包含的文件已经包含了外部定义。我对了解以下两种情况的行为非常感兴趣:
-
假设我们有三个.h和.cc配对:f1.h/.cc、f2.h/.cc和f3.h/.cc。如果f2.h/.cc包括f1.h,f3.h/.cc包括f2.h,是否必须包括f1.h或者当它被包含在f2中时,f1.h的所有定义都将对f3文件可见?
-
再次假设我们有三个.h和.cc配对:f1.h/.cc、f2.h/.cc和f3.h/.cc。如果f2包括f1并且f2还包括f1,然后f3包括f1或f2,那么f1和f2之间的“循环链接”会导致问题吗?
#pragma once
,这是一个方便的命令。 - Marnix