C语言如何制作自己的 h 文件

我想做一个软件练习,其中需要多次运用一个结构这个结构是这样的structgoodstr{charname;charnum;floatm3;floatkg;intcount... 我想做一个软件练习,其中需要多次运用一个结构
这个结构是这样的
struct goodstr
{
char name;
char num;
float m3;
float kg;
int counts;
}

我把它写进了 jiegou.h 文件 并在程序中使用

#include"jiegou.h"

但是程序报错 说 无法打开jiegou.h文件
请问这个是什么原因,
属于自己的 h 文件要怎么做才正确?
放在当前目录下也不行,我都试了,我想应该是h文件的编写错误,我想知道的是如何正确编写一个h文件的全过程
前面加了typedef也不行,现在最有效果的就是把名字改成.C了但是头文件仍然不能做
展开
 我来答
金蔚逮忻欢
2019-12-26 · TA获得超过3723个赞
知道大有可为答主
回答量:3112
采纳率:30%
帮助的人:184万
展开全部
一个.h文件要
对应有一个.c文件,这样写助于查看和修改程序。比如a.h

a.c;:
在.h文件中
#ifndef
__A_H_
#define
__A_H_
#include
void
trans2(double
B)

double
trans1()

#endif
在.c文件中
#include
"a.h"
把相应的函数定义写在.c文件中
再在main.c文件中
#include
"a.h"
#include
main()
{
double
trans1()
//由度分秒到弧度
{
double
B1,B11,B12,B13,B111;
scanf("%lf°%lf′%lf″",&B11,&B12,&B13);
B111=fabs(B11);
//B11可能为负值
B1=B111+B12/60.0+B13/3600.0;
B1=B1*atan(1)/45.0;
if(B11<0)
B1=-B1;
return
B1;
}
void
trans2(double
B)
//由弧度到度分秒并输出角度值
{
int
a,b;
double
B0;
B0=fabs(B);
//B可能为负值
double
c;
B0=B0*45.0/atan(1);
a=int(B0);
b=int((B0-a)*60);
c=(B0-a)*3600-b*60;
if((int)(c)==60)
//为了避免出现59′60″这种情况,不过好像不起作用,不知道为什么,原来是int没有加括号
{
b=b+1;
c=0.0;
}
if(b==60)
{
b=0;
a=a+1;
}
if(B<0)
a=-a;
printf("%d°%d′%.4f″\n",a,b,c);
}
}
就可以在main.c函数中调用a.c中的函数了
匿名用户
2018-08-29
展开全部
你需要把你的头文件放在特定的目录下才能生效,比如“Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\"...".h”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伏浓齐易蓉
2020-01-09 · TA获得超过3914个赞
知道大有可为答主
回答量:3131
采纳率:33%
帮助的人:236万
展开全部
lz是不是不知道怎么把多个文件联系在一起编译运行啊!
首先修正一个楼上的错误。对于用户自己写的头文件,应当用#include
“xx.h”
而不能用#include
<xx.h>。否则将会出错。
lz在写好这个头文件后,比如你说的xx.h
只需要在你的源文件,也就是.c文件的开头使用预处理命令#include
"xx.h"便可以将头文件里面的内容包含到你的.c文件了。
然后直接编译,链接你的源文件(.c),然后生成生成.exe文件,便可以运行了。
lz注意喽!一定要把你的头文件和源文件放到同一个文件夹目录下,才能正确运行喽!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乾博裕eg
2007-07-10 · TA获得超过232个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:0
展开全部
如果在同一文件夹下
直接#include "jiegou.h"(注意是双引号)

如果不在同一文件夹下 #include "路径/jiegou.h"

楼上的是防止头文件重复包含
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0902060114
2007-07-11 · TA获得超过337个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:0
展开全部
我不知道怎么制作.h文件,但是对于你想把你的结构体放在一个文件里面,直接建立一个.c文件,然后放在TC当前目录下面,在使用这些结构体的时候就可以用include"filename.c"就可以,你去试试吧.
我用过了,可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式