本站动态:
代码排版中的缩进和行长
作者:shosh 日期:2010-04-25
大家都知道,代码的排版虽然不影响代码的编译和程序的运行,但是对于开发人员来说,它同样很重要。当我们看到排版整齐质量又高的代码的时候,我们会像欣赏艺术品一样去欣赏它,而如果代码排版混乱,哪怕思想再好的代码也会让你看了心烦。本文主要和大家探讨一下代码排版中的缩进和行长问题。
代码的缩进主要使用两个字符:tab键的缩进(\t)和空格。而对于到底使用tab还是空格,目前基本上没有形成统一的说法。使用tab的好处是需要缩进的时候,程序员只要敲一下tab键即可,而且多数程序员(包括我)都比较习惯使用tab。缺点是:tab的宽度是可变的。正常情况下,一个tab的长度是8个普通字符的宽度,而习惯上,我们认为用4个普通字符的宽度作为tab的长度是比较理想的,大多数代码编辑器都可以设定tab的长度。而空格除了缩进比较麻烦(得敲多个空格键),在对齐上比较容易。
另外还有一个问题,如果使用tab,在不同的编辑下显示的效果不同。比如在VC下排版得很好,可是用source insight或者Clear Case里的Merge工具打开,发现排列不整齐了。这个事情真的很头疼,所以有人(公司)就直接规定不许使用tab,只使用空格缩进。不过这样做对开发者来说确实是烦人的事情。
本文提供一个想法,即要有tab缩进的便利性,又要不影响对齐。方法如下:
1、行首的缩进统一使用tab,不能使用空格代替(这样不过设置tab的宽度是多少,都能对齐)
2、有效代码开始后如果还想缩进对齐(如变量的类型和变量名直接),不要使用tab,而使用空格。例如:
typedef struct
{
\tint\s\s\s\s\s\s\s\smember1;
\tfloat\s\s\s\s\s\s\smember2;
} typeName;
int function()
{
\tint\s\s\s\s\s\s\s\s\s\sa;
\tmydefinedtype\s\s\sbbb;
}
上面的\t表示tab缩进,\s表示空格。如果使用等宽的字体,不管\t用几个字符的宽度,上面的代码都能对齐。
对你常用的代码编辑器做如下设置:
1、将代码编辑器的字体设置为等宽字体,如Courier New或比较经典的Fixedsys
2、将代码编辑器的缩进宽度设为4个字节(可选)
这样你的代码就能够时刻对齐了。
再来说说行长的问题:
很多文章或编程书籍都推荐代码一行的长度不要超过80(有的也说75)个字符,如果超过就需要换行,然后说了一堆换行的规则。他们说的换行规则我都赞同,不过我觉得一行不超过80个字符这一条可以改改了。
为什么他们推荐一行的长度不超过80个字符?我想主要有以下几点原因:
1、如果将代码打印,太长的代码会打印不下。
2、这个说法应该在很早的时候就提出来的了,当时的显示器和现在的没法比,当时的显示器分辨率可能只有800*600,甚至只有640*480,如果代码写得太长就会出现水平滚动条,这样很麻烦。
不过对于现在的我们来说:
1、我们的代码基本上不会用来打印,最多放到网页上。
2、我们现在的显示器分辨率比较高,甚至有很多宽屏的,最小的水平分辨率也能达到1024个像素。
我们编写的代码首先应该考虑让自己写得顺手,自己看到舒服,其次再是如果在别人的机器上,别人看你的代码的时候,他们也能看得很舒服,最后再考虑如果放到网页上会显示成什么样。
所以我想说的是:我们不用太去在意80个字符长度的约定,我们可以适当加长。不然老是看到一句代码分成好几行,也不会感觉太美观。
以上只是我个人的看法,没有所谓的对与错,适合自己的就是最好的,不用去管太多的陈旧的条条框框。
代码的缩进主要使用两个字符:tab键的缩进(\t)和空格。而对于到底使用tab还是空格,目前基本上没有形成统一的说法。使用tab的好处是需要缩进的时候,程序员只要敲一下tab键即可,而且多数程序员(包括我)都比较习惯使用tab。缺点是:tab的宽度是可变的。正常情况下,一个tab的长度是8个普通字符的宽度,而习惯上,我们认为用4个普通字符的宽度作为tab的长度是比较理想的,大多数代码编辑器都可以设定tab的长度。而空格除了缩进比较麻烦(得敲多个空格键),在对齐上比较容易。
另外还有一个问题,如果使用tab,在不同的编辑下显示的效果不同。比如在VC下排版得很好,可是用source insight或者Clear Case里的Merge工具打开,发现排列不整齐了。这个事情真的很头疼,所以有人(公司)就直接规定不许使用tab,只使用空格缩进。不过这样做对开发者来说确实是烦人的事情。
本文提供一个想法,即要有tab缩进的便利性,又要不影响对齐。方法如下:
1、行首的缩进统一使用tab,不能使用空格代替(这样不过设置tab的宽度是多少,都能对齐)
2、有效代码开始后如果还想缩进对齐(如变量的类型和变量名直接),不要使用tab,而使用空格。例如:
typedef struct
{
\tint\s\s\s\s\s\s\s\smember1;
\tfloat\s\s\s\s\s\s\smember2;
} typeName;
int function()
{
\tint\s\s\s\s\s\s\s\s\s\sa;
\tmydefinedtype\s\s\sbbb;
}
上面的\t表示tab缩进,\s表示空格。如果使用等宽的字体,不管\t用几个字符的宽度,上面的代码都能对齐。
对你常用的代码编辑器做如下设置:
1、将代码编辑器的字体设置为等宽字体,如Courier New或比较经典的Fixedsys
2、将代码编辑器的缩进宽度设为4个字节(可选)
这样你的代码就能够时刻对齐了。
再来说说行长的问题:
很多文章或编程书籍都推荐代码一行的长度不要超过80(有的也说75)个字符,如果超过就需要换行,然后说了一堆换行的规则。他们说的换行规则我都赞同,不过我觉得一行不超过80个字符这一条可以改改了。
为什么他们推荐一行的长度不超过80个字符?我想主要有以下几点原因:
1、如果将代码打印,太长的代码会打印不下。
2、这个说法应该在很早的时候就提出来的了,当时的显示器和现在的没法比,当时的显示器分辨率可能只有800*600,甚至只有640*480,如果代码写得太长就会出现水平滚动条,这样很麻烦。
不过对于现在的我们来说:
1、我们的代码基本上不会用来打印,最多放到网页上。
2、我们现在的显示器分辨率比较高,甚至有很多宽屏的,最小的水平分辨率也能达到1024个像素。
我们编写的代码首先应该考虑让自己写得顺手,自己看到舒服,其次再是如果在别人的机器上,别人看你的代码的时候,他们也能看得很舒服,最后再考虑如果放到网页上会显示成什么样。
所以我想说的是:我们不用太去在意80个字符长度的约定,我们可以适当加长。不然老是看到一句代码分成好几行,也不会感觉太美观。
以上只是我个人的看法,没有所谓的对与错,适合自己的就是最好的,不用去管太多的陈旧的条条框框。
评论: 0 | 引用: 0 | 查看次数: 275
发表评论
上一篇
下一篇


文章来自:
Tags:
相关日志:






