[英]Including constants without importing header file
我设置了一段代码来接受一个常量整数参数(问题的维度),但是它可以在许多不同的维度上运行。
我不想每次运行时都不必更改硬编码的尺寸,理想情况下,我将定义几个虚拟的标头函数,它们基本上只是:
#ifndef dim_define_h
#define dim_define_h
const int dimension = [DIMENSION SPECIFIC TO THIS HEADER FILE];
#endif
然后在编译时,我可以使用该实例所需的头文件,例如:
g++ dimension_6.h code.cpp
这样的事情可能吗? 在头文件中定义一个常量,并在另一个未显式导入该头文件的文件中使用它?
编辑:
我的下一个尝试是仅使用main函数,将其与尺寸定义一起粘贴到另一个文件中,并对其进行复制。 然后编译如下:
g++ dim_specific_main.cpp lots.cpp more.cpp helpers.cpp
而且我认为这是通过现在main的编译实现的,它依赖于所有helper文件中定义的helper函数。 不幸的是,当它尝试编译辅助函数时,它需要在main.h中定义的常量,并且似乎已经忘记了它。
编辑2:我现在意识到我正在尝试在编译时需要知道它的地方使用此变量,并且我认为链接是在编译后发生的,因此我认为这种特殊方法是不可能的。
const int dimension = THE_DIMENSION;
然后用
g++ -DTHE_DIMENSION=6 code.cpp
不需要标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.