C语言的头文件问题
写了a.c和b.c两个文件,然后在b中声明了一个structabc,及一系列基于struct的操作然后a中我想构造structabc的变量当我写structabcxxx,...
写了a.c
和
b.c 两个文件,
然后在b中声明了一个struct
abc, 及一系列基于struct的操作
然后a中
我想构造 struct abc 的变量
当我写 struct abc xxx,
然后用makefile把两个文件gcc成一个可执行文件,就会报
RadixSort.c:31:21: warning: ‘struct
abc’ declared inside parameter list [enabled by default]
RadixSort.c:31:21: warning: its scope
is only this definition or declaration, which is probably not what
you want [enabled by default]
这该如何解决呢?
难道得在a中再声明一遍这个结构体?
先谢过 展开
和
b.c 两个文件,
然后在b中声明了一个struct
abc, 及一系列基于struct的操作
然后a中
我想构造 struct abc 的变量
当我写 struct abc xxx,
然后用makefile把两个文件gcc成一个可执行文件,就会报
RadixSort.c:31:21: warning: ‘struct
abc’ declared inside parameter list [enabled by default]
RadixSort.c:31:21: warning: its scope
is only this definition or declaration, which is probably not what
you want [enabled by default]
这该如何解决呢?
难道得在a中再声明一遍这个结构体?
先谢过 展开
3个回答
展开全部
C语言中,头文件相关解释和作用如下:
1、头文件可以定义所用的函数列表,方便查阅你可以调用的函数;
2、头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。
3、头文件只是声明,不占内存空间,要知道其执行过程,要看头文件所申明的函数是在哪个.c文件里定义的,才知道。
4、头文件并不是C自带的,可以不用。
5、调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h这个头文件。
C语言中头文件大致格式如下:
#ifndef __ABC_H__
#define __ABC_H__
//以上是为了防止头文件被多次包含,可以省略,最好有,名字任意,保证唯一即可。
1、头文件可以定义所用的函数列表,方便查阅你可以调用的函数;
2、头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。
3、头文件只是声明,不占内存空间,要知道其执行过程,要看头文件所申明的函数是在哪个.c文件里定义的,才知道。
4、头文件并不是C自带的,可以不用。
5、调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h这个头文件。
C语言中头文件大致格式如下:
#ifndef __ABC_H__
#define __ABC_H__
//以上是为了防止头文件被多次包含,可以省略,最好有,名字任意,保证唯一即可。
展开全部
说实在的,描述的太糊涂了——b中声明(b.h?b.c?)
一般来说,如果以b为主,需要某种结构体,就写在b.h里面。
当a.c里面需要,就在a.c里面include<b.h>。
同样,如果a.h里面需要,比如函数参数表中需要,就在a.h里面include<b.h>。
如果文件太多,类型又是常用类型,有时单独把各种类型写一个独立的头文件。
原则上说,一个东西不要写两遍,这个是大忌。日后很可能只改正一处,造成严重错误。
一般来说,如果以b为主,需要某种结构体,就写在b.h里面。
当a.c里面需要,就在a.c里面include<b.h>。
同样,如果a.h里面需要,比如函数参数表中需要,就在a.h里面include<b.h>。
如果文件太多,类型又是常用类型,有时单独把各种类型写一个独立的头文件。
原则上说,一个东西不要写两遍,这个是大忌。日后很可能只改正一处,造成严重错误。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询