设为首页 加入收藏

TOP

大型项目中C语言的模块化建议 (二)
2014-11-23 22:57:37 来源: 作者: 【 】 浏览:8
Tags:大型 项目 语言 模块化 建议
ndif
<函数声明 >
#ifdef __cplusplus
}
#enfif

#endif

保证在使用这个头文件时,用户不用再包含使用此头文件的其他前提头文件,即要使用的头文件已经包含在此头文件里。例如:area.h头文件包含了面积相关的操作,要使用这个头文件不需同时包含了关于点操作的头文件piont.h。用户在使用area.h时不需要手动包含piont.h,因为我们已经在 area.h中用#include “point.h”包含了这个头文件。

用来暴露接口的头文件还需要参考更多的规则:

1,一个模块一个接口,不能几个模块用一个接口。

2,文件名为和实现模块的c文件相同。abc.c--abc.h

3,尽量不要使用extern来声明一些共享的数据。因为这种做法是不安全的,外部其他模块的用户可能不能完全理解这些变量的含义,最好提供函数GetPut访问这些变量。

4,尽量避免包含其他的头文件,除非这些头文件是独立存在的。这一点的意思是,在作为接口的头文件中,尽量不要包含其他模块的那些暴露*.C文件中内容的头文件,但是可以包好一些不是用来暴露接口的头文件。

5,不要包含那些只有在可执行文件中才使用的头文件,这些头文件应该在*.c文件中包含。这一点如同上一点,为了提高接口的独立性和透明度。

6,接口文件要有面向用户的充足的注释。从应用角度描述个暴露的内容。

7,接口文件在发布后尽量避免修改,即使修改也要保证不影响用户程序。

多个代码文件使用一个接口文件:这种头文件用于那些认为一个模块使用一个文件太大的情况。增加以下建议。

1,多个代码文件组成的一个模块只有一个接口文件。因为这些文件完成的是一个模块。

2,使用模块下文件命名 <系统名 > <模块名命名>

3,不要滥用这种文件。

4,有时候也会出现几个*.c文件用于共向数据的*.h文件,这种文件的特点是在一个*.c文件里定义全局变量,而在其他*.c文件里使用,要将这种文件和用于暴露模块接口的文件区别。

5,一个模块如果有几个子模块,可以用一个*.h文件暴露接口,在这个文件里用#include包含每个子模块的接口文件。

还有一种头文件,说明性头文件,这种头文件不需要有一个对应的代码文件,在这种文件里大多包含了大量的宏定义,没有暴露的数据变量和函数。这些文件给出以下建议:

1,包含一些需要的概念性的东西.

2,命名方式,定义的功能.h

3,不包含任何其他的头文件.

4,不定义任何类型.

5,不包含任何数据和函数声明.

上面介绍了C头文件的一些建议,下面介绍C代码文件*.c文件的一些建议,*.c文件是C语言中生成汇编代码和机器码的内容,要注意以下建议:

1.命名方式 模块名.c

2,用static修饰本地的数据和函数。

3,不要使用external。这是在*.h中使用的,可以被包含进来。

4,无论什么时候定义内部的对象,确保独立与其他执行文件。

5,这个文件里必须包含相应功能函数。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言的学习基础,100个经典的算法 下一篇溢出的处理及大小端模式的判断

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: