//文件:foo.c
static int var;
void foo()
{
var++;
}
Run Code Online (Sandbox Code Playgroud)
//文件结尾foo.c
//文件bar.c:
static int var;
void bar()
{
var++;
}
Run Code Online (Sandbox Code Playgroud)
//文件结束bar.c
//文件main.c
static int var;
void main()
{
foo();
bar();
printf("%d", var);
}
Run Code Online (Sandbox Code Playgroud)
//文件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;
}
Run Code Online (Sandbox Code Playgroud)
它应该像这样构建好:
$ gcc -Wall main.c foo.c bar.c -o main
Run Code Online (Sandbox Code Playgroud)
结果应该是:
$ ./main
0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |