- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 C++ Primer ,我们可以为定义为 extern 的变量提供初始化程序,但这样做会覆盖 extern。具有初始值设定项的 extern 是一个定义:
extern double pi = 3.1416; // definition
最佳答案
According to C++ Primer, we can provide an initializer on a variable defined as
extern
, but doing so overrides theextern
.
extern
的影响。 ,这通常会抑制定义。然而,
extern
可以有其他效果,并且初始值设定项不会使这些效果无效。
It is also stated in the book that providing an initializer on an extern inside a function is an error.
extern
用于强制声明具有外部或内部链接(而不是声明局部变量)。但是,该语言禁止在本地范围内定义这样的变量。您只能在那里声明它,并在命名空间范围内提供匹配的定义。如果您提供初始化程序,那么您试图在那里定义变量,这是不允许的。
If providing an initializer on an extern outside any function can override the extern, why can providing it on an extern inside a function not?
extern
的事实。影响被声明的实体的链接。
I also don't understand why someone would want to both obtain a declaration adding the
extern
keyword and provide an initializer. Is it not the same as defining a variable and providing an initializer on it? If it is not, why?
extern
连同初始化器,通常是因为我们试图定义一个
const
具有外部链接的对象。见下文:
// At global scope:
const int c1 = 42; // definition with internal linkage
extern const int c2; // declaration with external linkage
extern const int c3 = 42; // definition with external linkage
关于c++ - 为什么在函数内的 extern 上提供显式初始化程序不会覆盖 extern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61664287/
我是一名优秀的程序员,十分优秀!