如何让全局变量出现在变量声明后的头文件中?我把它安排成这样,但是在标题中,它不被认为是定义的:
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
在标题中,DESCRIPTION
和FUNCTION
被视为未定义,我如何使其可以使用?
免责声明:它超级丑,不是吗?这是一个严格的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();