C 存在冲突类型错误

C 存在冲突类型错误,c,compiler-errors,C,Compiler Errors,在编译我的c文件时,我遇到了这个错误 我似乎无法使我的类型正确用于此程序,我将如何着手解决此问题 我建立了.h文件和.c文件 错误 例4.h代码 typedef struct{ int x; char s[10]; }Record; void f(Record *r); void g(Record r); void h(const Record r); 示例4.c代码 #include <stdio.h> #include <string.h

在编译我的c文件时,我遇到了这个错误
我似乎无法使我的类型正确用于此程序,我将如何着手解决此问题 我建立了.h文件和.c文件

错误

例4.h代码

typedef struct{
        int x;
        char s[10];
}Record;

void f(Record *r);
void g(Record r);
void h(const Record r);
示例4.c代码

#include <stdio.h>
#include <string.h>
#include "example4.h"

int main()
{
        Record value , *ptr;

        ptr = &value;

        value.x = 1;
        strcpy(value.s, "XYZ");

        f(ptr);
        printf("\nValue of x %d", ptr -> x);
        printf("\nValue of s %s", ptr->s);


        return 0;
}

void f(Record *r)
{
        r->x *= 10;
        (*r).s[0] = 'A';
}

void g(Record r)
{
        r.x *= 100;
        r.s[0] = 'B';
}

void h(Record *r)
{
        r->x *= 1000;
        r->s[0] = 'C';
}
#包括
#包括
#包括“示例4.h”
int main()
{
记录值*ptr;
ptr=&value;
x=1;
strcpy(值s,“XYZ”);
f(ptr);
printf(“\n x%d的值”,ptr->x);
printf(“\n s%s的值”,ptr->s);
返回0;
}
无效f(记录*r)
{
r->x*=10;
(*r.s[0]=“A”;
}
无效g(记录r)
{
r、 x*=100;
r、 s[0]=“B”;
}
无效h(记录*r)
{
r->x*=1000;
r->s[0]=“C”;
}

您的头文件声明
无效h(const记录r)

当源文件声明
void h(Record*r)


您修复了源文件,但在尝试应用时忘记了修复头文件。

请参阅此问题的前传。“我将如何解决此问题”--显然,通过使类型相同。在发布代码之前,你有没有看过代码?
#include <stdio.h>
#include <string.h>
#include "example4.h"

int main()
{
        Record value , *ptr;

        ptr = &value;

        value.x = 1;
        strcpy(value.s, "XYZ");

        f(ptr);
        printf("\nValue of x %d", ptr -> x);
        printf("\nValue of s %s", ptr->s);


        return 0;
}

void f(Record *r)
{
        r->x *= 10;
        (*r).s[0] = 'A';
}

void g(Record r)
{
        r.x *= 100;
        r.s[0] = 'B';
}

void h(Record *r)
{
        r->x *= 1000;
        r->s[0] = 'C';
}