如何使Main.cpp中声明的全局变量在头文件中可访问

How to get global variable declared in Main.cpp to be accessible in a header

本文关键字:文件 访问 全局变量 何使 Main cpp 声明      更新时间:2023-10-16

如何让全局变量出现在变量声明后的头文件中?我把它安排成这样,但是在标题中,它不被认为是定义的:

main.cpp:

const int COUNT = 10;
void (* FUNCTION[COUNT])();
const char * DESCRIPTION[COUNT];
#include "TestFont.h"

testFont.h:

#define COUNTER_VAR = __COUNTER__;
DESCRIPTION[COUNTER_VAR] = "description";
FUNCTION[COUNTER_VAR] = func;
#undef COUNTER_VAR

在标题中,DESCRIPTIONFUNCTION被视为未定义,我如何使其可以使用?

免责声明:它超级丑,不是吗?这是一个严格的VS沙盒项目,所以我可以用c++编写小的单文件测试或脚本,尽可能少的IDE设置仪式。我们的目标是这样做,所以我所需要做的就是在main.cpp中包含头,并且main将具有必要的函数指针和描述,以将其列为控制台中的一个选项。不要分数!

下列行在函数体之外是不合法的:

DESCRIPTION[COUNTER_VAR] = "description";
FUNCTION[COUNTER_VAR] = func;

你可能需要把它包装在一个helper函数中。

static int init()
{
#define COUNTER_VAR = __COUNTER__;
   DESCRIPTION[COUNTER_VAR] = "description";
   FUNCTION[COUNTER_VAR] = func;
#undef COUNTER_VAR
}

并调用函数

static int dummy = init();