下载此文档

详解为什么include .c文件不常用.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
今天有人问我: #include 能不能 include 一个()? 偶的回答是:从理论上讲可以,但是不推荐。为什么经常见到 include .h 文件而不是 include .c 文件?或者说 include 文件设定的语法?这个问题的答案偶不知道,没有见有文档记载、说明这个问题。不过从语法角度讲, include 的意思就是从当前位置包含另外一个文件,就象宏替换一样把当前行用另外一个文件的整个内容替换掉。从这点讲, include .c 文件是可行的, c编译器完全能够正常处理。但是为什么不常见 include .c文件? 我想从两个方面可以得到一点解释。一就是,从设计角度上讲,,是为了接口与实现的分离,实际上两者没什么本质的差别。.h文件提供接口, .c文件提供具体的实现,两者可以一一对应,也可以不一一对应,没有强制要求。, 有可能要跟其他的模块打交道, 这个时候就需要 include 其他模块的接口(); 而包含其他模块的实现(.c 文件)是没有意义的、危险的。二就是从编译角度上来讲, make 之间提供隐讳规则的支持,就是说在 makefile ,就能达到显示指定这一依赖规则的作用。这个规则的副作用就是,,除非在 Makefile 中显示指定这种依赖规则, 否则 make 不会自动添加这种依赖关系。这样,,原本需要重新编译的模块得不到重新编译( 或者执行 rebuild) ,这样的话对工程管理和排错都造成了很大的障碍。所以,我们不应该在项目中 include .c文件, 这样使用者出于直觉很难想到这里会有问题,增加了排错的难度。前几天偶移植一个国际知名大公司的代码就遇到了这个问题,耗费了半天的时间查看了全部的源码和 makefile 才发现了这个不常见编译现象。当然,那个公司的代码之所以这么做,是他认为这些代码已经很成熟了,不需要修改和反复重新编译。但它的做法确实对我的调试造成了很大的障碍。----- 谢谢[满头大汗] 的提醒,偶又做了改动:删除线都是写的不对的内容。补充的是:即便是 include ,如果修改 Makefile ,也能完成其依赖关系。这个帖子放的久了,就不删掉了。----- GNU Make Document 中的相关章节----- 自动生成依赖在为一个程序编写的 makefile 文件中,常常需要写许多仅仅是说明一些 OBJ 文件依靠头文件的规则。例如,如果‘ ’通过一条#include 语句使用‘ ’,您需要写入下的规则: : 您需要这条规则让 make 知道如果‘ ’一旦改变必须重新构造‘ ’。由此您可以明白对于一个较大的程序您需要在 makefile 文件中写很多这样的规则。而且一旦添加或去掉一条#include 语句您必须十分小心地更改 makefile 文件。为避免这种烦恼,现代 C 编译器根据原程序中的#include 语句可以为您编写这些规则。

详解为什么include .c文件不常用 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小61 KB
  • 时间2017-02-20