为什么下面的代码不起作用?请解释一下。
#include<stdio.h>
#include<stdlib.h>
int main(int number, char arg[])
{
extern int i;
i = 5;
printf("%d",i);
return 0;
}
<小时/>
#include<stdio.h>
#include<stdlib.h>
int main(int number, char arg[])
{
extern int i;
i = (int) malloc(sizeof(int));
i = 5;
printf("%d",i);
return 0;
}
最佳答案
extern
用于指定变量存在,但尚未定义。您不创建变量,仅向编译器指定它存在。如果没有,您将在链接时出错。
我建议您阅读更多有关extern keyword的信息
一个简单的使用示例是两个 .c
文件,一个将您的 extern 变量设置为全局变量,另一个打印此变量
文件.c
int value = 5;
main.c
int main() {
extern int value;
printf("%i\n", value);
return 0;
}
使用gcc file.c main.c
编译此文件将输出5
关于c - 外部代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998900/