当我在定义变量时阅读使用'extern'关键字的答案
其中一位用户回答了这些问题
extern int a; // not a definition
extern int a = 42; // definition
Run Code Online (Sandbox Code Playgroud)
我期待两者都不是定义而是宣言.我在想这两个语句都说变量是在函数外部定义的,我们必须使用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
Run Code Online (Sandbox Code Playgroud)
但这些说法
extern int a = 42; // user said its a definition and now i got confused
Run Code Online (Sandbox Code Playgroud)
请用这些清楚我.
每当初始化尝试,语句变成一个定义,无论是extern被使用.该extern关键字是在这样的情况下多余的,因为,在默认情况下,未标记的符号static已经有外部连接.
声明外部变量并在当前编译单元中设置其初始值是没有意义的,这是一个矛盾.
| 归档时间: |
|
| 查看次数: |
8571 次 |
| 最近记录: |