C分割代码解决思路
C分割代码
最近自己写代码的时候,老是对怎么分割代码出现问题,不知道对于一个程序,哪些东西该放在.c中,哪些该放在.h中,郁闷呢
------解决方案--------------------
你只要知道哪些放在头文件中就可以了
头文件常包含的内容:
函数原型
使用#define或const定义的符号常量
结构声明
类声明
模板声明
inline函数
------解决方案--------------------
我现在的理解是:.h是头文件,一般是供其余源文件引用的,或者说,是一个源文件导出给外部源文件使用的接口。比如说,现在有3个文件:a.h,a.c,b.c。其中,a.c里集合了一组解决相关问题的函数(建议把相关问题的函数集中到一个.c文件中),而a.h则相当于a.c的接口,b.c包含了a.h,表明要使用a.c里的解决方案。
因此,a.h里应该包含以下内容:
1. 其余源文件要调用的函数原型声明
2. 其余源文件要使用的全局变量extern声明和数据类型定义
3. 其余源文件要使用的宏定义
a.c里则是如下内容:
1. 本源文件内部私用函数原型声明,在函数名前加static以确保不被外部源文件调用
2. 本源文件内部私用宏定义
3. 本源文件私有全局变量声明,变量名前加static以确保不被外部源文件引用
4. 共用全局变量声明,(对应a.h里的第2项,实际是,在源文件中声明了全局变量,在头文件中用extern导出给外部源文件使用)
5. 内部私有函数定义
6. 全局函数定义
最近自己写代码的时候,老是对怎么分割代码出现问题,不知道对于一个程序,哪些东西该放在.c中,哪些该放在.h中,郁闷呢
------解决方案--------------------
你只要知道哪些放在头文件中就可以了
头文件常包含的内容:
函数原型
使用#define或const定义的符号常量
结构声明
类声明
模板声明
inline函数
------解决方案--------------------
我现在的理解是:.h是头文件,一般是供其余源文件引用的,或者说,是一个源文件导出给外部源文件使用的接口。比如说,现在有3个文件:a.h,a.c,b.c。其中,a.c里集合了一组解决相关问题的函数(建议把相关问题的函数集中到一个.c文件中),而a.h则相当于a.c的接口,b.c包含了a.h,表明要使用a.c里的解决方案。
因此,a.h里应该包含以下内容:
1. 其余源文件要调用的函数原型声明
2. 其余源文件要使用的全局变量extern声明和数据类型定义
3. 其余源文件要使用的宏定义
a.c里则是如下内容:
1. 本源文件内部私用函数原型声明,在函数名前加static以确保不被外部源文件调用
2. 本源文件内部私用宏定义
3. 本源文件私有全局变量声明,变量名前加static以确保不被外部源文件引用
4. 共用全局变量声明,(对应a.h里的第2项,实际是,在源文件中声明了全局变量,在头文件中用extern导出给外部源文件使用)
5. 内部私有函数定义
6. 全局函数定义