gpt4 book ai didi

c - 如何在多个交互的 C 文件之间使用共享变量?

转载 作者:行者123 更新时间:2023-11-30 17:00:36 26 4
gpt4 key购买 nike

我正在尝试声明一个变量 x在文件中demo_f1.c并在两个文件 demo_f2.c 中使用它和demo_f3.c具有两个功能void f2()void f3() ,分别。

我有一个使用变量 x 的驱动程序以及这两个函数,但是当我尝试编译驱动程序时它给了我一个错误。

demo_f1.c

int x=2;

demo_f2.c

#include"C:\TC\BIN\demo_f1.C"

void f2()

{

extern int x;

printf("In f2 x:%d\n",x);

}

demo_f3.c

#include"C:\TC\BIN\demo_f1.C"

void f3()

{

extern int x;

printf("In f3 x:%d\n",x);

}

驱动程序.c

#include"stdio.h"
#include"conio.h"
#include"C:\TC\BIN\demo_f1.C"
#include"C:\TC\BIN\demo_f2.C"
#include"C:\TC\BIN\demo_f3.C"
void main()

{

clrscr();

printf("In main program,x:%d\n",x);

f2();

f3();

getch();

}

错误:

Compiling C\TC\BIN\Driver.C:
Error C\TC\BIN\DEMO_F1.C 1: Variable 'x' is initialized more than once
Error C\TC\BIN\DEMO_F1.C 1: Variable 'x' is initialized more than once

为什么我会收到此错误?我该如何纠正它?

最佳答案

要使代码编译,您只需从 f2()f3() 中删除 extern int x; 即可。如需更完整的答案,请阅读How do I use extern to share variables between source files in C?正如 grahamj42 所建议的那样。

关于c - 如何在多个交互的 C 文件之间使用共享变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37515785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com