extern int i = 10;
void test()
{
std::cout << "Hi" << i << std::endl;
}
虽然此代码给出了错误:
void test()
{
extern int i = 10;
std::cout << "Hi" << i << std::endl;
}
error: ‘i’ has both ‘extern’ and initializer
我在C++ Primer读到这个:
Any declaration that includes an explicit initializer is a definition.
We can provide an initializer on a variable defined as extern, but
doing so overrides the extern. An extern that has an initializer is a
definition. It is an error to provide an initializer on an extern inside a
function.
有人可以提供一个解释,说明为什么这是一个错误,如果在函数本地完成,而在全局范围允许相同?
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/c-weishenmezaihanshuneichushihuaexternbianlianghuichan.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 27, 2019 at 02:15 上午