gpt4 book ai didi

c - extern int a; 之间的区别外部内部 a=42;

转载 作者:太空狗 更新时间:2023-10-29 14:53:34 25 4
gpt4 key购买 nike

当我阅读 Use of 'extern' keyword while defining the variable 的答案时

一位用户这样回答

 extern int a;       //  not a definition 
extern int a = 42; // definition

我原以为两者都不是定义而是声明。我在想这两个语句都说变量是在函数外部定义的,我们必须使用 extern 关键字才能使用它。这是他的错误还是真的是一个定义?这个我知道

extern int a; // variable is already defined but its outside the function
extern int a=42 ; //I guess a variable is assigned a value but not a definition

但是这些声明

extern int a = 42; // user said its a definition and now i got  confused

请用这些清除我。

最佳答案

无论何时尝试初始化,语句都会成为一个定义,无论是否使用externextern 关键字在这种情况下是多余的,因为默认情况下,未标记为 static 的符号已经具有外部链接。

声明一个外部变量并在当前编译单元中设置它的初始值是没有意义的,这是一个矛盾。

关于c - extern int a; 之间的区别外部内部 a=42;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610321/

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