Function 在c中向文件传递结构
我已经看到了一些关于StackOverflow的答案。在我的c项目中,我使用了主函数和子函数。子函数写在一个单独的.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;
#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;
}