在我的文件夹我有一个小version.cpp
文件结构如下:包括如何在C++中工作?
#include "thelibr/version.h"
const int major = MAJOR;
const int minor = MINOR;
我无法理解这样的代码做什么以及如何使用它的代码的剩余部分(存储在相同的其他文件目录)。
首先,据我所知,代码将两个变量(major
和minor
),但什么是我不明白是哪里的MAJOR
和MINOR
值被设置的值。它们是否设置为thelibr/version.h
。
其次,当执行上面给出的代码行时,我也不清楚。它们没有放入任何可能从其他文件中编码的其他方法调用的方法。那么,如何调用这些行呢?
第三,我看到字符串version
不存在于同一目录中的任何其他文件中。这是否意味着这些文件都不使用存储在version.cpp
中的代码。我们不应该在其他文件中包含version.h
文件,以便能够使用version.cpp
中的代码吗?第四,如果我们在version.cpp
中设置了major
和minor
变量的值,那么这些变量是否会在其他地方可见?它令我想起我,因为我们不使用任何字样,如global
或external
。
恕我直言,如果你提供了一个例子,你可能会一路走来并显示一个样本version.h,version.cpp。否则,我担心你的回答可能会导致OP的混乱。 – idoby
@busy_wait我还应该添加什么?除了我认为他已经拥有的头卫兵之外,这个特殊的例子似乎已经被覆盖了。问题是许多其他类型的情况,例如'inline'函数,'static'对象和'static'成员。说实话,听起来OP似乎并没有准备好深入C++。 – Potatoswatter
我认为关于#includes的问题同样适用于C++的子集,看起来就像C. IMO最重要的一点应该是说明通过头文件共享#define与共享一个在其中一个实现文件中实际定义的变量的声明。只是我的两分钱。我不想通过写我自己的方式来削弱你的好回答。 – idoby