代码规范:程序的版式

2.1 空行

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

所以不要舍不得用空行。

【规则 2-1-1】在每个类声明之后、每个函数定义结束之后都要加空行。参见示例2-1(a)

// 空行
void Function1()
{}
// 空行
void Function2()
{}
// 空行
void Function3()
{}

【规则 2-1-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。参见示例 2-1(b )

// 空行
while (condition)
{
	statement1;
	// 空行
	if (condition)
	{
		statement2;
	}
	else
	{
		statement3;
	}
	// 空行
	statement4;
}
  • 补充:单个函数是为了完成某些功能逻辑的,如果功能逻辑分为多步,建议使用双空行进行分割

int main(int argc, char * argv[])
{
   //初始化方位
   float s = 34.63397;
   float w = 114.12389;
   float n = 38.79397;
   float e = 119.30389;
   char * szOpenFile = "E:\\detect_work\\Z_RADR_I_Z9531_20210705035903_O_DOR_SAD_CAP_FMT.bin.bz2";
   char * ptr_basedata;
   char * outpng = argv[2];
   szOpenFile = argv[1];

   int DataByte;
   CDataStd std;
   
   //使用三方库解析产品文件
   
   //根据位数大小创建缓冲区,用来存放基数据。
   
   //校验雷达数据合理性,并加载内部类指针数据
   
   //获取雷达基数据和任务配置、扫描配置信息.


   //计算雷达边界数据

   //开始获取 全部的PPI仰角层数中的 基数据产品头中最大的//164-195 强度库数 //196-227 速度\谱宽库数
   
   //创建二维数据矩阵存储产品信息 [方位][强度/速度]

   //创建完毕获取数据
   std.get_data(&info, R, V, W, ZDR, KDP, PHI, CC, SNRH);

   
   //进行质量控制


   return 0;
}

2.2 代码行

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

【规则 2-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误

示例 2-2(a)为风格良好的代码行

	int width; // 宽度 
int height; // 高度 
int depth; // 深度 

 
x = a + b; 
y = c + d; 
z = e + f; 

 
if (width < height) 
{ 
	dosomething(); 
} 
for (initialization; condition; update) 
{ 
	dosomething(); 
} 
// 空行 
other(); 

,示例 2-2(b)为风格不良的代码行。


 
示例 2-2(a) 风格良好的代码行 示例 2-2(b) 风格不良的代码行
int width, height, depth; // 宽度高度深度

X = a + b; y = c + d; z = e + f; 

if (width < height) dosomething(); 


for (initialization; condition; update) 
 dosomething(); 
other(); 
 

【建议 2-2-1】尽可能在定义变量的同时初始化该变量(就近原则)

如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用

了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如
int width = 10; // 定义并初绐化 width

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

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

补充说明
1. 在使用传入参数时,尽量先进行数据内容的校验。
2. 如果不确定有无合法参数,可以使用缺省值初始化形参。

2.3 代码行内的空格

【规则 2-3-1】关键字之后要留空格。象 const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象 if、for、while 等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

【规则 2-3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

【规则 2-3-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

【规则 2-3-4】‘,’之后要留空格,如 Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如 for (initialization; condition; update)。

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

【规则 2-3-6】一元操作符如“!”、“~”、“++”、“–”、“&”(地址运算符)等前后不加空格。

【规则 2-3-7】象“[]”、“.”、“->”这类操作符前后不加空格。

【建议 2-3-1】对于表达式比较长的 for 语句和 if 语句,为了紧凑起见可以适当地去掉一些空格,如 for (i=0; i<10; i++)和 if ((a<=b) && (c<=d))
![[Pasted image 20220505221741.png]]

2.4 对齐

【规则 2-4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

【规则 2-4-2】{ }之内的代码块在‘{’右边数格处左对齐。

void Function(int x)
{// program code
}

if (condition)
{// program code
}
else
{// program code
}

for (initialization; condition; update)
{// program code
}

While (condition)
{// program code
}

如果出现嵌套的{},则使用缩进对齐,如:
{{}}

补充说明:尽量不要出现三级以上的嵌套循环。

2.5 长行拆分

  1. 单行长度控制在70-80字符内
  2. 换行时,操作符尽量在前。

![[Pasted image 20220505222229.png]]

2.6 修饰符的位置

  1. 为了不引起歧义,修饰符尽量和变量名靠近。
char *name;
int *x, y;

2.7 注释

  1. 行注释使用//....
  2. 代码块注释使用/*.....*/
  3. 函数声明注释使用
/**
* ...
* ...
* ...
* ...
**/

2.8 类的版式

![[Pasted image 20220505222813.png]]


服务器高级架构体系:https://ke.qq.com/course/417774?flowToken=1010783

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值