Ich versuche, eine Variable x
in einer Datei demo_f1.c
und verwenden Sie es in zwei Dateien demo_f2.c
und demo_f3.c
mit zwei Funktionen void f2()
und void f3()
jeweils zu erklären.Wie verwende ich eine gemeinsame Variable zwischen mehreren interagierenden C-Dateien?
Ich habe ein Treiberprogramm, das die Variable x
und beide dieser Funktionen verwendet, aber es gibt mir einen Fehler, während ich versuche, das Treiberprogramm zu kompilieren.
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();
}
Der Fehler:
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
Warum erhalte ich diesen Fehler? Wie kann ich das korrigieren?
Warum enthalten Sie # eine .c-Datei? – immibis
immibis Ich weiß, dass ich eine .h-Datei im Allgemeinen enthalten sollte, aber # included eine .c-Datei funktioniert auch. Kein Problem damit. –