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

时间:2015-08-31 17:41:52

标签: c++ global-variables c-preprocessor

如何在变量声明后包含的标题中显示全局变量?我有这样安排,但在标题内,它不被认为是定义:

main.cpp中:

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

testFont.h:

DESCRIPTION

在标题中,FUNCTION<?php if(!empty($_POST['data'])) { $data = $_POST['data']; $file = 'log.txt'; // Open the file to get existing content $current = $data; // Append a roll to the file $current .= file_get_contents($file); // Write the contents back to the file file_put_contents($file,$current); } else{ $file = 'log.txt'; // Open the file to get existing content $current = "No Value sent\n"; // Append a new person to the file $current .= file_get_contents($file); // Write the contents back to the file file_put_contents($file, $current); } 被视为未定义,我如何制作以便可以使用它们?

免责声明:超级丑陋不是吗!这严格用于VS中的沙箱项目,因此我可以使用尽可能少的IDE设置仪式在C ++中编写小型单文件测试或脚本。目标是使它成为我需要做的就是在main.cpp中包含标题,main将具有必要的函数指针和描述,以将其列为控制台中的选项。没有成绩!

1 个答案:

答案 0 :(得分:3)

以下几行在函数体之外是不合法的。

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

您可能需要将其包装在辅助函数中。

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

并调用该函数。

static int dummy = init();