[21IC首页] [21IC资料下载] [21IC器件搜索[alldatasheet网] [中国芯片手册网] [电子查询网] [磁动力工作室] [驱动程序开发网] [射频网络] [液晶之家] [可控硅应用技术网]

Computer○○的家当®

 
 
载入中...
   
                             设置为首页      [站长入口]    站点2: [EDN站点]   站点3: [与非站点]   站点4: [电子园站点]   我的USB专区: [圈圈的USB专区]

 




载入中...

日志内容


C语言中的头文件可以自己写吗?
电脑圈圈 发表于 2006-3-17 22:57:00

一些初学C语言的人,不知道头文件(*.h文件)原来还可以自己写的。只知道调用系统库函数时,要使用#i nclude语句将某些头文件包含进去。其实,头文件跟.C文件一样,是可以自己写的。头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。当使用#i nclude语句将头文件引用时,相当于将头文件中所有内容,复制到#i nclude处。为了避免因为重复引用而导致的编译错误,头文件常具有

#ifndef   LABEL

#define   LABEL

   //代码部分

#endif

的格式。其中,LABEL为一个唯一的标号,命名规则跟变量的命名规则一样。常根据它所在的头文件名来命名,例如,如果头文件的文件名叫做hardware.h

那么可以这样使用:

#ifndef   __HARDWARE_H__

#define   __HARDWARE_H__

  //代码部分

#endif

这样写的意思就是,如果没有定义__HARDWARE_H__,则定义__HARDWARE_H__,并编译下面的代码部分,直到遇到#endif。这样,当重复引用时,由于__HARDWARE_H__已经被定义,则下面的代码部分就不会被编译了,这样就避免了重复定义。

另外一个地方就是使用include时,使用引号与尖括号的意思是不一样的。使用引号(“”)时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。而使用尖括号(<>)时,刚好是相反的搜索顺序。假设我们有两个文件名一样的头文件hardware.h,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I;另一个则保存在当前工程的目录下,我们把它叫做文件II。如果我们使用的是#i nclude <hardware.h>,则我们引用到的是文件I。如果我们使用的是#i nclude “hardware.h”,则我们引用的将是文件II。笔者以前就遇到过一个同事问,为什么他修改了那个头文件里面的内容,好象跟没有修改一样?就是因为他有两个一样的头文件(就像我们刚描述的那样),他是使用#i nclude<hardware.h>引用的,而他修改时,却是当前工程所在的目录下的那个文件。

                                                                                      (By  computer00   2006-2-14)


阅读全文 | 回复(11) | 引用通告 | 编辑       


Re:C语言中的头文件可以自己写吗?
笑三刀发表评论于2007-12-31 20:18:00

笑三刀好东西,收着了
个人主页 | 引用 | 返回 | 删除 | 回复       


Re:C语言中的头文件可以自己写吗?
computer00发表评论于2007-12-14 1:11:00

computer00可能你的文件没有添加到工程中去吧。
个人主页 | 引用 | 返回 | 删除 | 回复       


Re:C语言中的头文件可以自己写吗?
井蛙(游客)发表评论于2007-12-13 22:35:00

井蛙(游客)工程目录下就是我编写的那个的程序存放的目录拉
怎么我在里面定义的一些东西在我编译程序的时候说没有定义

个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
computer00发表评论于2006-9-19 16:29:00

computer00

__HARDWARE_H__

是自己定义的标号,是根据文件名得来,避免标号重复,原文中并未提到__HARDWARE_H__是文件。


个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
彬(游客)发表评论于2006-9-19 10:24:00

彬(游客)

写得很好,非常不错,解释也很清楚,不过就是还有一点不明白,

#ifndef   __HARDWARE_H__

#define   __HARDWARE_H__

什么说这个文件名有没有被定义过,

应该是说某个标识符有没定义过吧,

关于这一点还是不清楚!


个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
sdlythy(游客)发表评论于2006-6-13 22:48:00

sdlythy(游客)

这个网站太好了,以后要常来学习.


个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
阿静(游客)发表评论于2006-4-17 11:17:00

阿静(游客)多多向圈圈学习
个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
figo1885(游客)发表评论于2006-3-25 0:26:00

figo1885(游客)

ding ding ding


个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
tywinter(游客)发表评论于2006-3-24 23:22:00

tywinter(游客)


个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
 likee(游客)发表评论于2006-3-20 0:17:00

 likee(游客)圈圈兄真是强,这么多经验,顶!我一定要学会应用!
个人主页 | 引用 | 返回 | 删除 | 回复       


回复:C语言中的头文件可以自己写吗?
hotpower(游客)发表评论于2006-3-18 9:12:00

hotpower(游客)我一般喜欢自己乱搞....
个人主页 | 引用 | 返回 | 删除 | 回复       

发表评论:
载入中...

 
 

 

用户信息

载入中...

    
    
 
家当信息
载入中...

站长简介:  

    Computer00,男。B型血,天蝎座。爱好电子技术及计算机技术。21IC中国电子网[技术交流]版版主。

 

最新回复

载入中...

圈圈公告 
载入中...

最新家当

载入中...

友情链接 

 

家当主题

载入中...

最新留言

载入中...

搜我的家当 

          chunyang工作室
        为您提供无线通讯模块