对c&c++源文件和头文件分开的好处的一点认识
2011-07-27 17:21
190 查看
对c&c++程序来说,基本上来说都是要把源文件和头文件分别编写。一般都是代表一个基本功能的源文件引用相应的头文件。
一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。
在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的:
c语言中头文件中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到源文件中)
1) 从业务扩展性上看:头文件中放函数的声明,函数由源文件实现,这就是将面向接口编程:接口和实现分开,这在面对业务变更频繁的需求中技术实现的好处是显而易见的--只要定义出良好地、扩展性高的接口,实现是可以很方便的更换。
2) 从程序架构上看:代码在在大型程序中 需要分成不同的模块,单一模块中又可能分为不同的业务功能单元,他们间有很多相互的调用。
头文件中的方法声明、结构体定义、宏就都可以充当这部分的模块与模块间、业务功能单位间的接口调用。模块与模块间,功能单元与功能单元间都是面向接口的调用,耦合性低,这正是基于组件编程的核心思想。
3) 从某些技术角度实现上看:头文件可通过宏定义来保证类定义、结构体定义、宏定义的唯一性。确实很方便,不容易出错。
在用makefile编译程序时,各个功能单元单独编译,构成中间文件.最终这些中间文件链接成可执行程序,在这些中间文件中重复引用同一头文件是不可避免的。但如果头文件有保护性编程就可以很容易保证类、结构体、宏定义的唯一性 ----最终链接成可执行程序时,可执行程序中代码区中只会有唯一的类、结构体、宏的定义,其他都因为不满足唯一性保护失效。这样的实现是不是很‘优雅’:)))? 我不知道你是否是这样认为,至于我,我是这样认为,haha~
另: 铁道系统出事就是现实社会的影子,其他的,如国土管理、教育、甚至中国足球都是。但愿天佑中国,改变这一切,也改变我们的民族略根性
一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。
在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的:
c语言中头文件中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到源文件中)
1) 从业务扩展性上看:头文件中放函数的声明,函数由源文件实现,这就是将面向接口编程:接口和实现分开,这在面对业务变更频繁的需求中技术实现的好处是显而易见的--只要定义出良好地、扩展性高的接口,实现是可以很方便的更换。
2) 从程序架构上看:代码在在大型程序中 需要分成不同的模块,单一模块中又可能分为不同的业务功能单元,他们间有很多相互的调用。
头文件中的方法声明、结构体定义、宏就都可以充当这部分的模块与模块间、业务功能单位间的接口调用。模块与模块间,功能单元与功能单元间都是面向接口的调用,耦合性低,这正是基于组件编程的核心思想。
3) 从某些技术角度实现上看:头文件可通过宏定义来保证类定义、结构体定义、宏定义的唯一性。确实很方便,不容易出错。
在用makefile编译程序时,各个功能单元单独编译,构成中间文件.最终这些中间文件链接成可执行程序,在这些中间文件中重复引用同一头文件是不可避免的。但如果头文件有保护性编程就可以很容易保证类、结构体、宏定义的唯一性 ----最终链接成可执行程序时,可执行程序中代码区中只会有唯一的类、结构体、宏的定义,其他都因为不满足唯一性保护失效。这样的实现是不是很‘优雅’:)))? 我不知道你是否是这样认为,至于我,我是这样认为,haha~
另: 铁道系统出事就是现实社会的影子,其他的,如国土管理、教育、甚至中国足球都是。但愿天佑中国,改变这一切,也改变我们的民族略根性
相关文章推荐
- 对c&c++源文件和头文件分开的好处的一点认识
- 对c&c++源文件和头文件分开的好处的一点认识
- 一天一点学习Linux之认识文件系统
- 关于分开编写多个LaTeX文件的一点微小的总结
- 一天一点学习Linux之认识文件系统
- 把程序的定义与实现部分用头文件与源文件分开
- 模板函数的声明和定义为何不能分开放在两个文件中?
- 关于 数据文件自增长 的一点理解
- 对maven的一点认识
- 对snat, dnat, 回环的一点认识
- 认识帐号管理的灵魂文件(passwd和shadow)
- ESB初步配置文件认识
- spring.net 中配置文件分开储存的写法
- 对“义”和“利”的一点认识
- 认识ASP.NET配置文件Web.config
- 关于文件编码格式的一点探讨
- 认识一点朝鲜战争(上网笔记)
- 关于Zstack中配置文件讲一讲自己肤浅的认识
- 创建jar文件的一点注意
- 认识html文件基本结构