c - 如何编译这段代码?

标签 c

//文件: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/

相关文章:

c - 我的程序可以找到数字列表的最高移动平均值,但是当我通过 for 循环运行它时找不到它?

c# - 转储 GUID 结构?

c - 尝试确定字符串是否包含句点

c - UART中断无限循环微芯片

c - 如何修改fork()函数?

c - 求二维数组中指定行和列的最大值 C

c - 如何根据每行末尾的值对文件行进行排序

c - C中 "3"和 '3'的区别

c - 在 C 中读取二进制文件(以 block 为单位)

c - 未接收来自 TCP 连接的文件传输