如何编译这段代码?

sky*_*oor 1 c

//文件: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()但它仍然无法编译.

Pau*_*l R 6

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)