- 12
- 0
- 约2.56万字
- 约 28页
- 2017-05-12 发布于河南
- 举报
C编程规范_v1.0
C++ 编程规范
周 俊
摘 要 正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复用性、兼容性、可移植性是程几员应该毕生追求的目标。
为了可以提高软件的质量,程序员应该从以三个方面来认真、仔细的编写程序代码:
(1)编程风格;
(2)出错处理;
(3)算法复杂度分析(用于提高性能)。
为了达到以上目标,制定一个切实可行的规范是十分必要的。该文对C++编程所需要注意的问题和规范作了详细的描述。
通过该规范,我们希望达到以下目标:
增加开发过程代码的强壮性、可理解性、易维护性;减少有经验和无经验开发人员编程所需的脑力工作;
在项目范围内统一代码风格;
通过人为以及自动的方式对最终软件应用质量标准;
使新的开发人员快速适应项目氛围;
支持项目资源的复用:允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围。
文件结构
C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。
版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头如下表所示,主要内容有:
版权信息。
文件名称,标识符,摘要。
原始版本,作者/修改者,完成日期。
当前版本号,作者/修改者,完成日期。
版本修改记录。
// Copyright (c) 2001,EITOP Information Technology CO., LTD
// All rights reserved.
//
// 文件名称:filename.hpp
// 摘 要:简要描述本文件的内容
//
// 原版本:1.0
// 原作者 :输入原作者(或修改者)名字
// 完成日期:2001年5月10日
//
// 当前版本:1.1
// 作 者:输入作者(或修改者)名字
// 完成日期:2001年7月20日
//
// 修改记录:
// 时间1:修改内容描述1
// 时间2:修改内容描述2 #include filename.h 格式来引用标准库的头文件(编译器将从标准库目录开始搜索);
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
防止头文件被重复引用
为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。
如:demo.h文件中的以下内容
#ifndef DEMO_H
#define DEMO_H
//------------------------------------------------------------
// add your codes here
//------------------------------------------------------------
#endif
头文件中只存放“声明”而不存放“定义”
在C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。
建议将成员函数的定义与声明分开,不论该函数体有多么小。
尽量不使用全局变量
不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。
定义文件的结构
定义文件有三部分内容:
定义文件开头处的版权和版本声明;
对一些头文件的引用;
程序的实现体(包括数据和代码);
样例程序
cmtmsg.hpp 的内容
// 版权和版本声明
#ifdef CMTMSG_HPP // 防止cmtmsg.hpp被重复引用
#define CMTMSG_HPP
void Function1(void); // 全局函数声明
class CMTMsg
{
public:
CMTMsg(int value) : m_iValue(value){};
protected:
void ShowInfo(void);
private:
int m_iValue;
};
#endif
cmtmsg.cpp 的内容
#include iostream.h // 引用标准库的头文件
#include “cmtmsg.hpp” // 引用非标准库的头文件
CMTMsg::ShowInfo(void)
{
cout “Hello world! ” endl;
}
程序的目录结构
如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存于不同的目录,以便于维护。
将头文件保存于include目录,将定义文件保存于source目录(也可以是多
您可能关注的文档
- 2013软件开发试卷.doc
- 2014-2015(上)计算机应用基础第三次月考检测卷.doc
- 2014-2015第2学期《JAVA项目开发实训》_实训计划.doc
- 2014VB第二次间周考试11计算机.doc
- 2014中考数学模拟题03.doc
- 2014年6月份短学期——软件工程与开发实践1(题目).doc
- 2014年9月份考试Java程序设计第三次作业.doc
- 2014年9月考试可视化程序设计(VB)_A_卷.doc
- 2014年平安建校上报材料 文档.doc
- 2014设计题.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 佳能EOS1500D基本使用说明书说明书.pdf VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 渣打银行(香港)有限公司.PDF VIP
- 2024年吉林高职高专院校单招统一考试《语文》试卷及参考答案.pdf VIP
- JSG202515机器人系统集成应用技术样题-学生组.docx VIP
- 棋盘博弈采购法战略体系.ppt VIP
- 节后复产复工安全知识考试试卷及答案.docx
原创力文档

文档评论(0)