C语言中一个文件中的定义如何在其它文件中引用?

[复制链接]
3794|8
 楼主| arm_start 发表于 2008-2-12 09:06 | 显示全部楼层 |阅读模式
例如,定义了一个A.H文件,在这个文件中有一个定义#define    g(x)   x*23
A.H文件是A.C文件的头文件,另外有一个B.C文件,在B.C中不想包含A.H文件,但又想使用g(x)这个定义,请问如何才能使用这个定义?
hotpower 发表于 2008-2-12 10:32 | 显示全部楼层

搞个公共的头文件

A.C只包含A.H,B.C只包含B.H,....Z.C只包含Z.H.
再搞个includes.h,每个A.H,B.H,...Z.H都包含这个includes.h
在includes.h中再包含所有的A.H,B.H,...Z.H
 楼主| arm_start 发表于 2008-2-12 11:50 | 显示全部楼层

为什么这样?

搞个公共的头文件 

1:A.C只包含A.H,B.C只包含B.H,....Z.C只包含Z.H.
2:再搞个includes.h,每个A.H,B.H,...Z.H都包含这个includes.h
3:在includes.h中再包含所有的A.H,B.H,...Z.H
 
 
第1/2步好理解,第3步为什么?第3步有什么作用啊?这样岂不是重复包含了?
这到是可以通过ifndef处理,但假如A.C中并没有用到B.H中的定义,可也把它包含进去了,虽然也没什么问题,但没用到却加进去了总感觉怪怪的啊?!
hotpower 发表于 2008-2-12 11:59 | 显示全部楼层

includes.h只包含大家公用的,无用的你包含它何用?

 楼主| arm_start 发表于 2008-2-12 13:02 | 显示全部楼层

变量和函数都可以通过extern来指定在外部定义过

呵呵,为什么当初制订规则的时候,define没有规定也可以通过extern使用呢?
fsaok 发表于 2008-2-12 13:08 | 显示全部楼层

头文件是C的错

真的觉得很麻烦,java文件就没有这个限定,不需要做头文件,只需要定义好公共和私有就OK了,fsa,永远OK
gyt 发表于 2008-2-12 13:45 | 显示全部楼层

过去硬盘内存都小

使用头文件是必要的
HWM 发表于 2008-2-13 14:50 | 显示全部楼层

六楼:“头文件是C的错”?实在是没有领会“头文件”妙趣

程序匠人 发表于 2008-2-13 15:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部