主要是C程序中的第一个函数还是第一个可执行语句?如果有全局变量int a=0;怎么办?
我一直被告知主要是一个程序的起点.但是在我看来,赋予某些价值的全局变量又是一个可执行的陈述呢?
我发现我可以在不使用extern的情况下达到预期的效果(尽管我同意它会给读者一些关于变量的暗示).在某些情况下,使用extern会产生不希望的结果.
xyz.h
int i;
Run Code Online (Sandbox Code Playgroud)
在file1.c
#include "xyz.h"
....
i=10;
....
Run Code Online (Sandbox Code Playgroud)
file2.c中
#include "xyz.h"
main()
{
printf("i=%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)
当然,这是一个大项目,为了简单的理解而将其分解.使用extern关键字,我无法获得理想的结果.实际上,我通过"extern"方法得到变量i的链接器错误.
代码采用"extern"方法,
在file1.c
int i;
main()
{
i=10;
}
Run Code Online (Sandbox Code Playgroud)
file2.c中
extern int i;
foo()
{
printf("i=%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)
这给链接器错误.我只是想知道它为什么在第一种情况下工作,以及在没有使用关键字"extern"的情况下我们无法做到的实际情况.谢谢.