打印

c语言中*.h文件的编译 谢谢

[复制链接]
2599|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyhkerry|  楼主 | 2008-7-19 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我如果想在main()主函数中,调用*.h库文件,这个库文件要放在哪个目录低下啊?还是可以随便放的,谢谢啊! 
  
另外:请教个问题哈 c语言的*.h库文件可以直接编译吗? 
  谢谢哈,小弟最近在做个nand flash的读写程序,迷糊呢!

相关帖子

沙发
dld2| | 2008-7-19 11:14 | 只看该作者

re

你说的“调用*.h库文件”,俺理解是include的意思。
“.h库文件”说法不准确。C库会提供.h文件,一般的模块也有.h文件,不能都说成是库文件。

.h文件的目录位置:有两种风格:
    一般一个.c文件会有一个相配的.h文件,这两个文件可以放在同一个目录下。
    建一个include目录,把.h文件都放在里面。

.h文件不需要编译。
为什么呢:
一个.c文件include一个.h文件,实际上相当于把这个.h文件的全部内容拷贝到这个.c文件中。
编译器只需要编译.c文件就可以了。

使用特权

评论回复
板凳
wyhkerry|  楼主 | 2008-7-19 11:28 | 只看该作者

谢谢!

#include<flash.h>比如我调用这个文件,那么我只要把flash.h这个文件和flash.c放在同个目录下就可以了吗?谢谢!

使用特权

评论回复
地板
dld2| | 2008-7-19 11:30 | 只看该作者

使用特权

评论回复
5
太阳之母| | 2008-7-19 11:51 | 只看该作者

呵呵

代码量很小的小规模的系统,.c文件和.h文件可以放在一个目录里,但不建议这么做,稍微大一点的系统,最好还是放在另外的目录里,一般这个目录大家都喜欢用include做名字。

至于编译器怎么找到这个目录,有两种方法:
1、在编译环境里一般都有对应的设置项,在这个设置项里,可以把.h文件所在的目录路径完整的定义下来;
2、用#include "绝对目录路径.h文件"直接指定。

2楼已经说了,.h文件不是库文件。
.h文件可以理解为库文件的“标签”,通过.h文件,你就可以知道对应的库文件里面有什么。
.h文件是.c文件模块相互调用的接口,假定afile.c文件里的函数想调用bfile.c里面的函数,就需要在afile.c里#include "bfile.h",因为bfile.h里面记录了bfile.c中可以被调用的那些函数是怎么个样子(函数的名字,有那些参数,参数的类型等等),这些信息就是所谓“函数标签”,至于这些函数的具体实现,就是bfile.c的事了。

使用特权

评论回复
6
dld2| | 2008-7-19 11:53 | 只看该作者

和楼上握下手

使用特权

评论回复
7
computer00| | 2008-7-19 12:37 | 只看该作者

注意include时,用<>和"",搜索顺序是不一样的~~~

工在工程目录下的(例如像楼主这样的)最好用"",而在编译器库目录下的,最好用<>

使用特权

评论回复
8
wyhkerry|  楼主 | 2008-7-19 13:10 | 只看该作者

感谢 太阳之母

感谢你啊 你解释的太好了,要我一下子明白了好多 谢谢啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

92

帖子

1

粉丝