#include <stdio.h>
#include "kontaktverzeichnis.h"
int main(){
kontakt_hinzufuegen();
return 0;
}
这是标题:
#ifndef KONTAKTVERZEICHNIS_H_
#define KONTAKTVERZEICHNIS_H_
#include "kontaktfunktionen.c"
int kontakt_hinzufuegen();
#endif /* KONTAKTVERZEICHNIS_H_ */
这是kontaktfunktionen.c
#include <stdio.h>
kontakt[];
kontakt_hinzufuegen(){
int i = 0;
printf("Bisher sind %i Kontakte angelegt.",kontakt[i]);
kontakt[i++];
}
struct kontaktname{
char* name;
char* vorname;
};
struct kontaktanschrift{
char* strasse;
int hausnummer;
int plz;
char* ort;
char* land;
};
我的错误在哪里?
答案 0 :(得分:5)
您不应该使用#include
C文件,这不是组织代码的正确方法。
您应该单独编译C文件,然后将它们链接在一起,或者使用单个编译器调用一次编译它们。
答案 1 :(得分:1)
您的错误是kontaktfunktionen.h
中包含kontaktfunktionen.c
的错误。这将包括kontaktfunktionen.c
中使用kontaktfunktionen.c
时已声明的所有定义和声明
正如其他人所说:你不应该在头文件中包含.c
个文件。
答案 2 :(得分:1)
请勿在头文件中#include
添加任何内容。并在#include "kontaktverzeichnis.h"
文件中执行kontaktfunktionen.c
。
正如@StoryTeller评论的那样,在kontakt_hinzufuegen()
文件中将int kontakt_hinzufuegen()
定义为kontaktfunktionen.c
,并从函数int
返回kontakt_hinzufuegen
值,如下所示: :
#include <stdio.h>
#include "kontaktverzeichnis.h"
// define the type for this array as below
int kontakt[];
int kontakt_hinzufuegen(){
int i = 0;
printf("Bisher sind %i Kontakte angelegt.",kontakt[i]);
kontakt[i++];
// Return an int value
return 0 ;
}