【发布时间】:2019-09-08 19:52:24
【问题描述】:
我想知道如何在命名空间中声明一个全局变量。
在general.h我有以下代码:
#include <iostream>
#pragma once
#ifndef TEST_NAMESPACE
#define TEST_NAMESPACE
namespace general
{
int n;
}
#endif
在我的程序中,当我包含 general.h 时出现此错误:
错误 LNK2005 "int general::n" (?n@general@@3HA) 已在 general.obj
【问题讨论】:
-
好吧,如果你有这个`_GEN_` - 不要。这些名称在 C++ 中是保留的——你不应该自己创建它们。
-
您更改的名称仍然保留 - 任何以下划线和大写字母开头的名称都是保留的。
-
好的,我又改了名字,但显然问题是我应该使用 extern 关键字
标签: c++ namespaces