【发布时间】:2016-05-29 23:04:58
【问题描述】:
我试图在文件demo_f1.c 中声明一个变量x,并在两个文件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);
}
Driver.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
为什么会出现此错误?我该如何纠正?
【问题讨论】:
-
你为什么要#includeing .c 文件?
-
immibis 我知道我通常应该#include 一个.h 文件,但#includeing 一个.c 文件也可以。没问题。
标签: c variables scope include extern