在不导入 header 文件的情况下包含常量
Including constants without importing header file
我有一段代码设置为采用常量整数参数(问题的维度),但它可以 运行 具有许多不同的维度。
我不想每次 运行 都必须更改 hard-coded 维度,我最好定义几个虚拟 header 函数,它们基本上只是:
#ifndef dim_define_h
#define dim_define_h
const int dimension = [DIMENSION SPECIFIC TO THIS HEADER FILE];
#endif
然后在编译时我可以使用该实例所需的任何 header 文件,例如:
g++ dimension_6.h code.cpp
这可能吗?在 header 文件中定义常量并在未显式导入该 header 文件的另一个文件中使用它?
编辑:
我的下一次尝试是只获取主要功能,将其与维度定义一起粘贴到另一个文件中,然后复制它。然后编译看起来像:
g++ dim_specific_main.cpp lots.cpp more.cpp helpers.cpp
而且我认为它现在正在通过 main 的编译来实现,这取决于所有帮助文件中定义的帮助函数。不幸的是,当它试图编译辅助函数时,它需要在 main.h 中定义的常量,但它似乎忘记了它。
编辑 2:我现在意识到我正在尝试在需要在编译时知道它的地方使用这个变量,并且我认为链接发生在编译之后,所以我不相信这种特殊的方法是可能的。
const int dimension = THE_DIMENSION;
然后用
编译
g++ -DTHE_DIMENSION=6 code.cpp
不需要header。
我有一段代码设置为采用常量整数参数(问题的维度),但它可以 运行 具有许多不同的维度。
我不想每次 运行 都必须更改 hard-coded 维度,我最好定义几个虚拟 header 函数,它们基本上只是:
#ifndef dim_define_h
#define dim_define_h
const int dimension = [DIMENSION SPECIFIC TO THIS HEADER FILE];
#endif
然后在编译时我可以使用该实例所需的任何 header 文件,例如:
g++ dimension_6.h code.cpp
这可能吗?在 header 文件中定义常量并在未显式导入该 header 文件的另一个文件中使用它?
编辑:
我的下一次尝试是只获取主要功能,将其与维度定义一起粘贴到另一个文件中,然后复制它。然后编译看起来像:
g++ dim_specific_main.cpp lots.cpp more.cpp helpers.cpp
而且我认为它现在正在通过 main 的编译来实现,这取决于所有帮助文件中定义的帮助函数。不幸的是,当它试图编译辅助函数时,它需要在 main.h 中定义的常量,但它似乎忘记了它。
编辑 2:我现在意识到我正在尝试在需要在编译时知道它的地方使用这个变量,并且我认为链接发生在编译之后,所以我不相信这种特殊的方法是可能的。
const int dimension = THE_DIMENSION;
然后用
编译g++ -DTHE_DIMENSION=6 code.cpp
不需要header。