答案 0 :(得分:3)
这个是正确的,
//globals.h
extern const std::string foo; //Consistent
一致!
答案 1 :(得分:1)
您可以给出const外部链接,如您的示例所示,但它仍然是不可修改的(常量)。
附:您需要包含<string>
,而不是<iostream>
P.P.S。如果我不清楚,你就无法重新定义常数。这不会编译:
extern std::string foo;
extern const std::string foo = "bar";
答案 2 :(得分:1)
正确的是
extern const std::string foo;
foo
是在其定义的源文件中的常量字符串,因此extern
声明也应指明这一点,并允许编译器捕获源文件中包含该标头的代码的实例可能会尝试修改foo
。
答案 3 :(得分:1)
答案 4 :(得分:0)
对于C语言,请在.c文件中声明实际的const,并在标头(.h)文件中使用“ extern”。这应该和声明全局变量时一样。