`
saybody
  • 浏览: 903488 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

程序的编写风格

阅读更多

编程风格虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。

1. 空行

空行起着分隔程序段落的作用。空行得体(不能过多也不能过少)将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍不得用空行。

¯ 在每个类声明之后、每个函数定义结束之后都要加空行。例如:

//类定义之后要用空格

class Date{

public:

Date(int x, int y, int z);

~Date();

void Show();

private:

int year;

int month;

int day;

};

//空行

class Time{

......

Date::Date(int x, int y, int z)

{

year = x;

month = y;

day = z;

}

//空行

Date::~Date()

{

}

//空行

void Date::Show()

{

cout<<year<<"-"<<month<<"-"<<day<<endl;

}

2. 代码行

¯ 一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。

¯ ifforwhiledo等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}(建议最好这样,不要怕麻烦)。这样可以防止书写失误。

¯ 尽可能在定义变量的同时初始化该变量(就近原则)

如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如

int width = 10; // 定义并初绐化width

char *name = new char[10]; //直接申请空间,而不至于出现未给指针变量指向空间的错误

3. 代码行内的空格

¯ 关键字之后要留空格。像constvirtualinlinecase 等关键字之后至少要留一个空格,否则无法辨析关键字。像ifforwhile等关键字之后可以留一个空格再跟左括号‘(’,以突出关键字。

¯ 函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

¯ ‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

¯ ‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update)

¯ 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+= >=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<,^”等二元操作符的前后应当加空格。

¯ 一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

¯ 像“[]”、“.”、“->”这类操作符前后不加空格。

¯ 对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for (i=0; i<10; i++)if ((a<=b) && (c<=d))

例如:

void Func1(int x, int y, int z); // 良好的风格

void Func1 (int x,int y,int z); // 不良的风格

if (year >= 2000) // 良好的风格

if(year>=2000) // 不良的风格

if ((a>=b) && (c<=d)) // 良好的风格

if(a>=b&&c<=d) // 不良的风格

for (i=0; i<10; i++) // 良好的风格

for(i=0;i<10;i++) // 不良的风格

for (i = 0; I < 10; i ++) // 过多的空格

x = a < b ? a : b; // 良好的风格

x=a<b?a:b; // 不好的风格

int *x = &y; // 良好的风格

int * x = & y; // 不良的风格

array[5] = 0; // 不要写成 array [ 5 ] = 0;

a.Function(); // 不要写成 a . Function();

b->Function(); // 不要写成 b -> Function();

4. 对齐

¯ 程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

¯ { }之内的代码块在‘{’右边数格处左对齐。(建议采用VC++6.0建议的默认风格)

5. 长行拆分

¯ 代码行最大长度宜控制在7080个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。

¯ 长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

if ((very_longer_variable1 >= very_longer_variable12)

&& (very_longer_variable3 <= very_longer_variable14)

&& (very_longer_variable5 <= very_longer_variable16))

{

dosomething();

}

virtual CMatrix CMultiplyMatrix (CMatrix leftMatrix,

CMatrix rightMatrix);

for (very_longer_initialization;

very_longer_condition;

very_longer_update)

{

dosomething();

}

6. 修饰符的位置

¯ 应当将修饰符 * 紧靠变量名

例如:

char *name;

int *x, y; // 此处y不会被误解为指针

7. 注释

C语言的注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。注释通常用于:

1)版本、版权声明;

2)函数接口说明;

3)重要的代码行或段落提示。

虽然注释有助于理解代码,但注意不可过多地使用注释。

¯ 注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱。注释的花样要少。

¯ 如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。例如

i++; // i 1,多余的注释

¯ 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

¯ 注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

¯ 尽量避免在注释中使用缩写,特别是不常用缩写。

¯ 注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。

¯ 当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

8. 类的版式

类可以将数据和函数封装在一起,其中函数表示了类的行为(或称服务)。类提供关键字publicprotectedprivate,分别用于声明哪些数据和函数是公有的、受保护的或者是私有的。这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。我们不可以滥用类的封装功能,不要把它当成火锅,什么东西都往里扔。

在定义类的时候,究竟是以定义数据成员开始还是以定义成员函数开始要看编程者的习惯。以下是两种方式:

class A

{

private:

int i, j;

float x, y;

public:

void Func1(void);

void Func2(void);

}

class A

{

public:

void Func1(void);

void Func2(void);

private:

int i, j;

float x, y;

}

(摘自《高质量C++编程指南》)

分享到:
评论

相关推荐

    程序编写规范化文档

    程序编写规范化文档是为了提高软件开发的质量与效率,确保代码的可读性、可维护性和可移植性,这对开发团队而言至关重要。良好的编程习惯不仅能提升个人的编程水平,还能提高整个团队的工作效率。该文档首先介绍了...

    C++ 标准程序库 自修教程与参考手册 中文 (free - 免费)

    同时,书籍强调了对泛型技术的理解和运用,这被认为是C++程序编写风格变化的驱动力。 2. 版权和出版信息:本书的英文原版由Nicolai M. Josuttis撰写,中文版由华中科技大学出版社和Pearson Education North Asia ...

    C语言的程序设计基础

    综上所述,C语言的程序设计基础涵盖了程序编写风格、结构化程序设计原则、面向对象程序设计的关键概念等核心知识点。掌握这些基础知识能够显著提高编程效率和代码质量,为编写复杂的程序打下坚实的基础。

    01Java程序编写规范.doc

    Java 程序编写规范 Java 程序编写规范是指在编写 Java 程序时需要遵守的一些基本原则和约定,以确保程序的可读性、可维护性和可扩展性。本文档将详细介绍 Java 程序编写规范的各个方面。 编写目的 Java 程序编写...

    程序布局原理 布局 风格分析

    程序布局原理是软件开发中的重要一环,它涉及到程序代码在内存中的组织方式以及用户界面的设计风格。在本文中,我们将深入探讨这两个方面,旨在帮助开发者理解如何优化程序的性能和用户体验。 首先,我们来讨论程序...

    获得本机IP地址程序编写方法

    获得本机IP地址程序编写方法 TITLE:获得本机IP地址程序编写方法 描述:该程序可以获得计算机IP地址,该程序可以获得计算机IP地址,该程序可以获得计算机IP地址。 标签:获得计算机IP地址 内容: 获得本机IP...

    结构化程序设计风格.pdf

    使用这样的方式编写程序,可以确保每个控制结构只有一个入口和一个出口,使得程序的逻辑清晰,易于理解。程序的文本可以按照控制结构的顺序从上到下逐段阅读,便于开发者追踪和调试。 “自顶向下,逐步求精”的设计...

    C语言编写的星座小程序

    【标题】:“C语言编写的星座小程序”是一个利用C编程语言开发的应用程序,它能够帮助用户查询他们的星座以及对应的星座配对信息。这个小程序可能是基于日期输入,通过计算用户出生日期来确定其属于哪个星座,并...

    Matlab程序编写标准

    Matlab程序编写标准是一份详细指导文件,主要目标是确保Matlab代码的正确性、清晰度、通用性和可维护性。这份指南与软件开发社区的最佳实践相一致,并特别针对Matlab语言的特性和历史进行了修改。其中推荐的编码指南...

    java编写的记事本程序

    【Java编写的记事本程序】是一个利用Java编程语言实现的简单文本编辑器,它提供了基本的文本编辑功能,如更改字体、字号和字形,同时也具有良好的代码注释,便于学习和理解。这个程序是Java初学者或者对GUI编程感...

    visual c++ vc编写无界面程序.后台程序

    在Windows操作系统中,经常需要编写一些无界面程序或后台程序,这些程序通常不需要用户交互,但需要在后台运行,以便实现一些特定的功能。今天,我们将讨论如何使用Visual C++设计无界面程序或后台程序。 首先,让...

    c语言编写风格 规范与技巧

    ### C语言编写风格规范与技巧 #### 一、引言 C语言作为一种广泛使用的编程语言,在软件开发领域占据着极其重要的地位。随着程序规模的不断扩大,保持良好的编码风格变得尤为重要。良好的编码风格不仅可以提高程序...

    C# 编写记事本程序

    通过以上步骤,我们可以使用C#编写出一个功能完备、用户体验良好的仿Windows风格记事本程序。这只是一个基础示例,实际上,你可以根据需求添加更多特性,如自动换行、查找和替换的高亮显示、编码选择等,使记事本更...

    程序编写规范-类似32标准库的格式

    在程序编写规范书写风格方面,规范要求函数的返回类型必须明确写出,即使它为默认类型。函数参数之间使用逗号加空格隔开,参数排列整齐,这可以增加代码的整洁性。此外,函数命名首字母大写的规则在书写风格中亦有...

    编写无错C程序秘诀(中文)

    ### 编写无错C程序秘诀 #### 一、引言 在《编写无错C程序秘诀》一书中,作者Steve Maguire通过一系列生动的小故事和简单易懂的例子,揭示了我们在编写C语言程序时常常忽略的问题。这些知识点不仅对于初学者来说至关...

    win8Metro风格程序

    WinRT允许开发者使用C#、VB.NET、C++或JavaScript编写Metro风格的应用。 2. **XAML**: XAML(Extensible Application Markup Language)是一种标记语言,常用于定义UI元素和布局,是Windows 8 Metro应用UI设计的...

    编写c++程序步骤.docx

    "编写C++程序步骤" 编写C++程序是一项复杂的任务,需要逐步完成多个步骤。在本文中,我们将指导您完成从创建项目到编写代码的整个过程。 步骤1:创建项目 在编写C++程序之前,需要在Visual Studio 2008中创建一个...

Global site tag (gtag.js) - Google Analytics