Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 你怎么不';在头文件中包含外部常量(int)时,是否不需要为其赋值?在c++;_C++ - Fatal编程技术网

C++ 你怎么不';在头文件中包含外部常量(int)时,是否不需要为其赋值?在c++;

C++ 你怎么不';在头文件中包含外部常量(int)时,是否不需要为其赋值?在c++;,c++,C++,通常在声明任何类型的常量时,您应该立即为其赋值,但不在头文件中赋值?为什么?这是因为您声明了它extern,extern告诉编译器变量的定义和声明在另一个文件中,您只是让代码“意识到”该变量的存在,因此,编译器不希望在头上有任何赋值。请记住,不仅您不需要将值赋值给,而且您不应该将值赋值给外部声明,因为这使它们成为一个定义 你根本不应该在头文件中创建变量(普通的,全局的)@deviantfan那根本不是真的。比如const int means=42在头文件中完全正常。@NeilButterwort

通常在声明任何类型的常量时,您应该立即为其赋值,但不在头文件中赋值?为什么?

这是因为您声明了它
extern
,extern告诉编译器变量的定义和声明在另一个文件中,您只是让代码“意识到”该变量的存在,因此,编译器不希望在头上有任何赋值。

请记住,不仅您不需要将值赋值给,而且您不应该将值赋值给
外部声明,因为这使它们成为一个定义

你根本不应该在头文件中创建变量(普通的,全局的)@deviantfan那根本不是真的。比如
const int means=42在头文件中完全正常。@NeilButterworth如果您在多次包含链接器错误后对链接器错误没有问题…?”。。。?编辑:“正常”@deviant您不会得到任何链接器错误@Samsa发布了一些代码,说明了您的问题。