gpt4 book ai didi

c++ - 'extern' 关键字的作用是什么使以下代码合法?

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:54 25 4
gpt4 key购买 nike

为什么下面的代码可以编译?“num”变量何时获得其值?

#include <stdio.h>

extern int num;

void main()
{
printf("%d", num); //prints 3
}

int num = 3;

示例:Live Code

最佳答案

之所以有效,是因为您已经声明了 num,所以它可以在函数的代码中命名,并且因为您已经在命名空间范围内定义它,所以它在静态初始化时间,就在 main 执行之前。

从这个意义上说,您当前编写的程序在很大程度上与以下程序没有区别:

#include <stdio.h>

int num = 3;

void main()
{
printf("%d", num); //prints 3
}

初始化变量的“位置”并不特别相关,只要在您尝试使用它之前及时发生即可。

顺便说一下,您必须让 main 返回 int,而不是 void

关于c++ - 'extern' 关键字的作用是什么使以下代码合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com