关于C语言结构体作为头文件的问题

多个头文件都包含同一个结构体,如何在一个头文件中包含结构体的声明,使得调用该头文件就不用声明。比如student.h中写入声明structstudent{intmA;in... 多个头文件都包含同一个结构体,如何在一个头文件中包含结构体的声明,使得调用该头文件就不用声明。
比如 student.h中写入声明
struct student
{int mA; int mB; int mC; int tot; char ID[10];};
但是 另一个头文件Tot.h中
#include "student.h"
void Total(student stu[]).......却说student 没有定义~
是这样的~我在主程序里面定义了结构体student数组stu;然后在头文件里面写了一个函数,指针调用主程序里面的stu数组,结果error C2027: 使用了未定义类型“student”。#include <stdio.h>
头文件
#include "student.h"
void Input(struct student *stu)
{
FILE *fpin;
fpin=fopen("D://in.txt","r");
for (int i=0;i<10;i++)
fscanf(fpin,"%s%d%d%d",&stu[i].ID,&stu[i].mA,&stu[i].mB,&stu[i].mC);
fclose(fpin);
}
显示error C2027: 使用了未定义类型“student”
展开
 我来答
百度网友c083b0b
2010-05-05 · TA获得超过240个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:143万
展开全部
你少写了struct。c里面结构体前面的struct是不可省略的,不过c++可以省略。
#1
student.h
---------------
struct student

{
int mA;
int mB;
int mC;
int tot;
char ID[10];
};

int h=0;
#2 student.c
----------
#include<stdio.h>
#include"student.h"

void main()
{
struct student stu={0,0,0,0,"asdf"};
printf("%s,%d",stu.ID,h);
}

我的正好啊,没有错误
pitifulcat
2010-05-05
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
首先头文件是用来写声明的,把函数的具体实现也写进去不好吧,后面的程序是.c还是.h,反正肯定漏了#include <stdio.h>还是具体点吧,一共那几个文件,每个文件具体什麼内容

还有楼上的,他struct在函数参数里写了就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅倚深微love
2010-05-05 · TA获得超过274个赞
知道答主
回答量:141
采纳率:0%
帮助的人:184万
展开全部
要用struct student做void Total(struct student stu[])的形参
而不是student
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小西
2015-08-11 · 运营
小西
运营
采纳数:218 获赞数:3887
百度知道热心用户

向TA提问 私信TA
展开全部
  头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明。
(2)预处理块。
(3)函数和类结构声明等。
  它的作用:
  (1)通过头文件来调用库功能。
  (2)头文件能加强类型安全检查。
  用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索),到include子目录下搜索给出的文件,并把它嵌入到当前文件中 。
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索),在当前目录中进行搜索,如果找不到,再按标准方式进行搜索 ,这种方式适用于用户自己建立的头文件。
  需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中
  
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式