如何在C中解决这个问题
当我有时间的时候,我已经自学了几个月的C语言,我遇到了一个我不知道如何解决的问题 具体来说,当我尝试使用gcc编译此文件时,我得到: RastgeleKarakter.c文件如何在C中解决这个问题,c,C,当我有时间的时候,我已经自学了几个月的C语言,我遇到了一个我不知道如何解决的问题 具体来说,当我尝试使用gcc编译此文件时,我得到: RastgeleKarakter.c文件 RastgeleKarakter RastgeleKarakterOlustur(){ RastgeleKarakter this; this=(RastgeleKarakter)malloc(sizeof(struct RASTGELEKARAKTER)); this->rnd=Rando
RastgeleKarakter RastgeleKarakterOlustur(){
RastgeleKarakter this;
this=(RastgeleKarakter)malloc(sizeof(struct RASTGELEKARAKTER));
this->rnd=RandomKur();
this->TekKarakter=&TekKarakter;
this->FazlaKarakter=&FazlaKarakter;
this->AraKarakter=&AraKarakter;
this->Arama=&Arama;
this->BelirlenenKarakter=&BelirlenenKarakter;
return this;
}
void TekKarakter(){
int mod;
mod = (saniye()%52);
printf(Dizi[mod]);
printf('\n');
}
RastgeleKarakter.h文件
struct RASTGELEKARAKTER{
Random rnd;
char (*RastgeleKarakterOlustur)(struct RASTGELEKARAKTER*);
char (*TekKarakter)(struct RASTGELEKARAKTER*);
char* (*FazlaKarakter)(struct RASTGELEKARAKTER*, int);
char* (*AraKarakter)(struct RASTGELEKARAKTER*, char, char, int);
char (*Arama)(struct RASTGELEKARAKTER*, char[], char);
char* (*BelirlenenKarakter)(struct RASTGELEKARAKTER*, char, char, char, char, char, char, int);
};
typedef struct RASTGELEKARAKTER* RastgeleKarakter;
char RastgeleKarakterOlustur(const RastgeleKarakter);
char TekKarakter(const RastgeleKarakter);
char* FazlaKarakter(const RastgeleKarakter, int);
char* AraKarakter(const RastgeleKarakter, char, char, int);
char Arama(const RastgeleKarakter, char[], char);
char* BelirlenenKarakter(const RastgeleKarakter, char, char, char, char, char, char, int);
因为您在
RastgeleKarakter.h
中声明
char-rastgelekarakteroluster(const-RastgeleKarakter)代码>
在您定义的RastgeleKarakter.c
中
RastgeleKarakter RastgeleKarakterOlustur(){…}
它们具有相同的函数名,但签名不同。你可以考虑更改其中一个。 因为在<代码> RastgeleKarakter .h < /C>你声明
char-rastgelekarakteroluster(const-RastgeleKarakter)代码>
在您定义的RastgeleKarakter.c
中
RastgeleKarakter RastgeleKarakterOlustur(){…}
它们具有相同的函数名,但签名不同。你可以考虑更改其中一个。你需要在文件的开头添加一个包含语句来包含.h文件。对于这个问题无关紧要,但是要避免键入指针,并铸造<代码> MALROCK()的返回。
如果可能。函数签名在.c
和.h
文件之间不匹配。例如:RastgeleKarakter RastgeleKarakterOlustur()
!=<代码> char RastgeleKarakterOlustur(const RastgeleKarakter)。您还可以考虑将预处理器保护添加到.h文件中。您需要在文件的开头添加包含语句的H语句。
如果可能。函数签名在.c
和.h
文件之间不匹配。例如:RastgeleKarakter RastgeleKarakterOlustur()
!=<代码> char RastgeleKarakterOlustur(const RastgeleKarakter)。您也可以考虑在H.H文件中添加预处理器保护。谢谢您已经删除了该行。谢谢,我已经删除了该行。
./src/RastgeleKarakter.c:26:21: error: conflicting types for 'RastgeleKarakterOlustur'
RastgeleKarakter RastgeleKarakterOlustur()
In file included from ./src/RastgeleKarakter.c:14:0:
./include/RastgeleKarakter.h:35:7: note: previous declaration of 'RastgeleKarakterOlustur' was here
char RastgeleKarakterOlustur(const RastgeleKarakter);
./src/RastgeleKarakter.c:38:9: error: conflicting types for 'TekKarakter'
void TekKarakter()
In file included from ./src/RastgeleKarakter.c:14:0:
./include/RastgeleKarakter.h:36:7: note: previous declaration of 'TekKarakter' was here
char TekKarakter(const RastgeleKarakter);
./src/RastgeleKarakter.c:49:9: error: conflicting types for 'FazlaKarakter'
void FazlaKarakter(int Sayi)
In file included from ./src/RastgeleKarakter.c:14:0:
./include/RastgeleKarakter.h:37:8: note: previous declaration of 'FazlaKarakter' was here
char* FazlaKarakter(const RastgeleKarakter, int);
./src/RastgeleKarakter.c:62:9: error: conflicting types for 'AraKarakter'
void AraKarakter(char a, char b, int Sayi)