【发布时间】:2020-09-02 13:24:58
【问题描述】:
我很抱歉我确定这是一个简单的错误。但几个小时后,我无法弄清楚我做错了什么。我知道extern 需要在函数外声明并在函数内定义。但我无法让它工作。
这是我最小的代码错误。
extern double d;
int main(void) {
d = 0;
return 0;
}
/home/0KzRYK/ccCTD3Lf.o: In function `main': prog.c:(.text.startup+0x3): undefined reference to `d' collect2: error: ld returned 1 exit status
【问题讨论】:
-
你只有声明,没有定义。
-
d=0 不是定义吗?
-
这是一个作业
-
@Akim 你真的能谈谈简单变量的定义吗?我会称之为作业。
-
这确实回答了这个问题(由 OP 在他们的回答中确认)。 Why is creating a variable using 'extern' a declaration and not a definition?我不想删除这个问题,但在我的观点中,关闭重复是一个合适的状态,所有代表更改都会保留。