c语言中头文件如何实现展开呢?

surepretty 2013-12-16 02:39:46
情况是这样的,
以前写的a.file 需要 incldue A.h

但现在写的b.file已经关联了B.h,其中B.h与A.h中部分结构体同名,从而导致重定义或类型冲突。

现在我是想再做一个C.h,把所有 (A-A&B)的定义放到C.h,

A.h想自动展开C.h,

要怎么处理呢?




...全文
2773 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
surepretty 2013-12-16
  • 打赏
  • 举报
回复
引用 6 楼 buyong 的回复:
加name space
能具体教一下怎么玩么? 一坨头文件搞晕了。。。。
buyong 2013-12-16
  • 打赏
  • 举报
回复
加name space
surepretty 2013-12-16
  • 打赏
  • 举报
回复
嗯。。是的。。。主要是以前的code定型不能动。。 新加的部分又与之前的code有重复, 所以想把重复的部分拉出来
worldy 2013-12-16
  • 打赏
  • 举报
回复
功能如果相同,则直接include,不要重新定义 功能如果不同,则不要使用相同的名称进行定义
derekrose 2013-12-16
  • 打赏
  • 举报
回复
你的意思是这两个类型完全一样?但是分布在两个file里?这不太奇怪了吗
surepretty 2013-12-16
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
typedef新定义可以覆盖旧定义。
可是我旧的定义也还是要保留的 而且结构体比较多,要一个一个处理吗? 有没有可能这样的,两个重合的结构体放到aaa.h里, 然后A.h写成 #include aaa.h 。。。 后面再加自己专属的呢?
赵4老师 2013-12-16
  • 打赏
  • 举报
回复
typedef新定义可以覆盖旧定义。
C++之程序结构,头⽂件,源代码⽂件 程序组织策略 程序组织策略 C++建⽴代码⼯程时,通常包括三个部分:头⽂件,函数源代码⽂件,主程序源代码(即main()函数,可以调⽤函数源代码,完成程 序的整体流程与功能)。 头⽂件( 头⽂件(#include)常包含的内容: )常包含的内容: 函数原型 eg:void a(int temp); 使⽤ #define 或 const 定义的符号常量 结构声明 类声明 模板声明 内联函数 说明: 1. 通常情况下,多个函数可能同时包括上述某些相同内容。如果每个函数都对该内容进⾏声明,想要修改该内容就需要同时修改上述全部 声明,对后⾯的维护造成不必要的⿇烦。为避免上述问题,可以将相关的内容放在 头⽂件,这样,要修改内容时,只需要在头⽂件做 ⼀次修改就可以。 2. 函数定义,变量声明不能放在头⽂件。例如,如果⼀个头⽂件包含某⼀函数定义,然后在其他两个⽂件(属于同⼀个程序)包含该 头⽂件,则同⼀个程序将包含同⼀个函数的两个定义(内联函数是特例),发⽣冲突。变量声明同函数定义。 3. 结构声明(struct),类声明(class)本⾝并不创建变量,⽽只是在源代码⽂件声明变量时,告诉编译器如何创建该结构变量。同 理,模板声明指⽰编译器如何⽣成与源代码函数调⽤相匹配的函数定义。 4. const 变量和内联函数有特殊的链接属性,可以放在头⽂件,不会引起问题。 函数源代码⽂件( 函数源代码⽂件(.cpp或 或.cc): ): 函数源代码⽂件,主要存放头⽂件函数原型的具体实现。 使⽤⽅法:编写程序的时候,如果需要使⽤这些函数,则只需包含头⽂件,并将函数源代码⽂件添加到项⽬列表或make列表 (Linux)。 注:在IDE不要将头⽂件加⼊到项⽬列表,也不要在源代码⽂件使⽤#include来包含其他源代码⽂件,这样将会导致多重声明。

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧