//文件:foo.c
static int var;
void foo()
{
var++;
}
//文件 foo.c 结束
//文件 bar.c:
static int var;
void bar()
{
var++;
}
//文件结尾bar.c
//文件main.c
static int var;
void main()
{
foo();
bar();
printf("%d", var);
}
//文件main.c结束
问题:上面的程序能编译通过吗?如果是这样,结果会怎样?
我测试了代码,发现无法编译。我尝试在main.c中使用extern来使用函数foo()和bar(),但仍然无法编译。
最佳答案
main.c 有一些小问题 - 它应该是这样的:
#include <stdio.h>
static int var;
extern void foo();
extern void bar();
int main(void)
{
foo();
bar();
printf("%d\n", var);
return 0;
}
它应该像这样构建正常:
$ gcc -Wall main.c foo.c bar.c -o main
结果应该是:
$ ./main
0
关于c - 如何编译这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2519271/