包括无导入标头文件的常数

Including constants without importing header file

本文关键字:常数 文件 导入 包括无      更新时间:2023-10-16

我设置了一块代码来进行恒定整数参数(问题的维度),但它可以使用许多不同的维度运行。

我不想每次运行时都需要更改硬编码的尺寸,理想情况下,我会定义几个虚拟标头函数,这些功能基本上只是:

#ifndef dim_define_h 
#define dim_define_h 
    const int dimension = [DIMENSION SPECIFIC TO THIS HEADER FILE];
#endif

然后,当编译时,我可以使用该实例所需的任何标头文件,例如:

g++ dimension_6.h code.cpp

有可能吗?在标头文件中定义常数,然后在另一个没有明确导入该标头文件的文件中使用它?


编辑:

我的下一个尝试是仅采用主函数,将其与尺寸定义一起在不同的文件中粘贴,然后副本。然后汇编看起来像:

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

不需要标头。