个人编码修养养成篇---花样缩进必学篇

1、大括号的位置

1.1 该怎么放啊?

  • 远古时期,大括号是和程序在同一行的。
  • 发展时期,两瓣大括号分别起一行。
  • 第三种风格,左边的大括号和语句在同一行,右边的大括号另起一行。这种既能缩短代码长度,又能明确标识代码块和函数的起始点。
  • 现在,几乎所有的程序员都采用第三种风格

1.2 示例

一部分程序员主张
-标识函数的起始部分时采用第二种风格;

  • 标识其他包括控制结构在内的一般代码块的起始时,采用第三种风格
void main()
{/* <--包含main函数在内的所有函数的大括号独立成行*/
	...中间略...
	while(!EDN){/* <--其他情况下左边的大括号和语句在同一行,右边的单独一行*/
	...
	}
	...
}
  • 这种新的风格有助于区分函数和其他代码块

2、 函数缩进

2.1 典型示例

  • 主体部分未缩进,简单的程序容易区分函数头和函数体.程序稍微多点,就不好看了。
void main()
{
printf("缩进示例\n");
}
  • 主体缩进,便于阅读,一般缩进2~4个字符。出于操作方面考虑,可以缩进2个字符,出于阅读方面考虑,可以缩进4个字符。
void main()
{
	printf("缩进示例\n");
}
  • 大括号需要缩进吗?
void main()
   {
   printf("缩进示例\n");
   }
  • 这样缩进,从语法来看并没有毛病,但是不容易掌握函数的起始结束位置。因此我们不对函数的大括号进行缩进

3、 内部代码块需要缩进哦

3.1 规则及示例

  • 代码块是用大括号包起来的语句。
  • main()函数中的代码块也要缩进,代码块内部的语句应该比大括号的位置再稍微缩进几个字符。

3.2 示例

...
int main()
{
	while(1)
	{
		total = 0;
		
		for(i = 0;  i < mon-1;  i++)
		{
			total = total + a[i];
		}
		
		total = total + day;
		
		if(mon > 2 )
		{
			total = total + 1;
		}
		printf("%4d-%02d-%02d is %dth days\n", year, mon, day, total);

	}
	system("pause");
}

4、输出部分要缩进

4.1 不缩进的后果

使用控制语句最能体现出缩进的效果。控制语句分为负责提供控制的判断部分和接受控制的输出部分。

  • 输出部分不缩进,看起来很奇怪,让人感觉少点什么
if (num1 ==  num2)
printf ("%d和%d相同。\n", num1, num2);
  • 容易给人下面这种感觉:
if (num1 ==  num2) <省略了某些语句>
printf ("%d和%d相同。\n", num1, num2);

4.2 多行语句缩进

  • 如果很难将输出部分全部缩进,也可以尝试将输出部分写成代码块的样式。下面代码中虽然没有将输出部分的内容缩进,但输出部分从何处开始、到何处为止都一目了然。
if (num1 ==  num2) {
printf ("%d和%d相同。\n", num1, num2);
printf ("%d和%d相同。\n", num3 num4);
}
  • 单条输出语句同样可以加大括号,这种不必要的大括号成为冗余大括号。如下:
if (num1 ==  num2){
	printf ("%d和%d相同。\n", num1, num2);
}

5、不要毫无意义的缩进

  • 有时候程序员想为了突出某些语句,而故意空格来强调,实际上大可不必。如果只是想表示强调,那么完全可以用添加注释等方式代替缩进。
int main() {
	printf("不要无意义地缩进。\n");
	/***程序终止***/
	return 0;
}

6、保持缩进程度地一致性

6.1 缩进程度标识嵌套深度

  • 有些程序员习惯根据语句地嵌套深度决定缩进深度,嵌套层数越多,相应需要缩进的字符数越多。
  • 从可读性层面来说,这并不时一个好的方法。
  • 总之,不要用缩进程度表示嵌套深度。
  • 应该用相同的缩进字符数表示嵌套,如果嵌套层数太多,可以添加与嵌套深度相匹配的注释。以示区分。
if (counter1 == 1) { // 第一层if嵌套
	if (counter2 == 10) { //第2层if嵌套
		if (counter3 == 100) { //第3层if嵌套
			if (counter4 == 1000) { //第4层if嵌套
				......
			} //第4层if嵌套结束
		} //第3层if嵌套结束
	} //第2层if嵌套结束
} //第1层if嵌套结束

7、选择合适的缩进程度

  • 缩进多少才好呢?通常来说,4个字符是最合适的,也是最广为采纳的。
  • 不管2个还是4个,缩进既不能过深,也不能过浅。这才是核心原则。

8、 不要编写突出形式的代码

  • 不知道还有没有人这样写了,但我之前确实见过我的同学这样写过,他说是为了强调代码块内的内容:
	if(num1 = num2) {
num1 = 20;
num2 = 50;
	}
  • 我劝,你加注释表强调吧。
  • 从本质上来说,你把代码凸出来,和在草稿纸边缘以外写字是完全一样的。

9、小结

需要检查缩进的时间点:

  • 程序完结之前;
  • 与他人进行程序交接之前;
  • 文件改写完成之后
  • 看完这篇,相信你离规范编码又有了进步,慢慢积累,你可以的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕竟是shy哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值