我的C程序有问题。我是新的C编程。我编写了一些内容,这里是我的错误和警告。
[Warning] conflicting types for 'setFirstValuesForSample' [enabled by default]
[Error] previous implicit declaration of 'setFirstValuesForSample' was here
调用我的函数时我错过了什么?
#include <stdio.h>
#include <stdlib.h>
#define MAX_TERIM_SAY 101
#define KARSILASTIR(x,y) (((x)<(y))?-1:((x)==(y))?0:1)
typedef struct{
int sat;//satır bilgisi
int kol;//sütun bilgisi
int deger;
} terim;
int main(int argc, char *argv[]) {
terim a[MAX_TERIM_SAY],b[MAX_TERIM_SAY],c[MAX_TERIM_SAY];
setFirstValuesForSample(a[MAX_TERIM_SAY],b[MAX_TERIM_SAY]);
return 0;
}
void setFirstValuesForSample(terim a[],terim b[])
{
a[0].sat = 5;
a[0].kol = 5;
a[0].deger = 4;
}
答案 0 :(得分:1)
setFirstValuesForSample
在使用之前未声明。因此它有一个隐含的声明
int setFirstValuesForSample();
这与定义不符,
void setFirstValuesForSample(terim a[],terim b[]) { ... }
在main
:
void setFirstValuesForSample(terim a[], terim b[]);
int main(int argc, char *argv[]) {
/* as before */
接下来,当您在main中实际调用它时,
setFirstValuesForSample(a[MAX_TERIM_SAY],b[MAX_TERIM_SAY]);
你传递了两个terim
类型的参数。这也与定义不符。您需要将呼叫更改为
setFirstValuesForSample(a, b);