c++ - "extern"关键字使用

标签 c++ extern

我有以下代码片段:

 #include<iostream>

 int main()
 {
     extern int a;
     printf("a = %d", a)
 }
 int a = 10;

上面的示例代码打印 10。我猜它应该打印垃圾值。有人可以解释一下吗?

最佳答案

全局变量具有静态持续时间,并且在 main 运行之前初始化静态变量。因此,在调用 printf 时,a 的值已经设置为 10

关于c++ - "extern"关键字使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848654/

相关文章:

c++ - 更新顶点缓冲区会导致调试层错误

c++ - 为什么用 C++ 编写的 phpcpp 扩展函数比用 php 编写的函数慢

c++ - SDL 对渲染的怀疑

c++ - `a' 的名称查找更改为新的 ISO `for' 范围

C++ 如何在 cpp 之间与 extern 共享常量 - 错误 : storage class specified

c++ - 在不指定命名空间的情况下调用外部函数

c++ - 函数模板重载与显式特化

c++ - block 范围内没有链接?

linux - 共享库如何找到 GOT 部分?

C:通过外部链接初始化全局常量