Function 在c中向文件传递结构

Function 在c中向文件传递结构,function,data-structures,structure,Function,Data Structures,Structure,我已经看到了一些关于StackOverflow的答案。在我的c项目中,我使用了主函数和子函数。子函数写在一个单独的.c文件中,其头文件包含在主文件中 #include<stdio.h> struct student { int t1; float e1; }; typedef struct student stu; #include"struct_demo.h" void main() { stu s1; stu *r1=&s1;

我已经看到了一些关于StackOverflow的答案。在我的c项目中,我使用了主函数和子函数。子函数写在一个单独的.c文件中,其头文件包含在主文件中

#include<stdio.h>


struct student
{
    int t1;
    float e1;
};

typedef struct student stu;

#include"struct_demo.h"

void main()
{
    stu s1;
    stu *r1=&s1;

    s1.t1=10;
    s1.e1=172.1;

    struct_demo(r1);
}
函数struct_demo的头文件是

#ifndef STRUCT_DEMO_H_
#define STRUCT_DEMO_H_

void struct_demo(stu *s1);

#endif /* STRUCT_DEMO_H_ */
我的编译器在子函数中显示错误

表达式必须具有指向结构或联合类型的指针

标识符stu未定义

在不使用单独的.c文件的情况下执行相同的程序(在单独的函数下将函数写入单个.c文件)可以工作。我哪里做错了

struct student
{
    int t1;
    float e1;
};

typedef struct student stu;

移动此代码struct_demo.h,因为struct_demo.h不知道解析地址所需的stu是什么

myStructure* myFunction(structure* myStructure)
{
    //some opperation
    return myStructure;
}
通过这种方式,您可以解析该结构的地址,但在初始化它时要小心,您必须使用calloc在内存中为它腾出空间,因为此时指针可以移动到任何地方

myStructure* myFunction(structure* myStructure)
{
    //some opperation
    return myStructure;
}