• 8607阅读
  • 10回复

【讨论】大家讨论一下子关于编码风格 [复制链接]

上一主题 下一主题
离线风中纸页
 
只看楼主 倒序阅读 楼主  发表于: 2005-09-18
大家总结一下子自己的编码风格,以及为什么(这个是关键)
[ 此贴被风中纸页在2005-09-18 10:17重新编辑 ]
把问题先交给google,再交给你的朋友。谢谢。
在线XChinux

只看该作者 1楼 发表于: 2005-09-18
我基本上赞同《C++编码标准》(摩托罗拉中国的一个人写的那本书)那本书的观点。
在本版里我也发过一些总结宣读C++编码标准。
代码逐级缩进,代码块的开始的花括号占据一新行,缩进按项目情况看,为4或为8,每个文件都有有文件头注释、函数注释和代码行注释,变量命名规则(不喜欢匈牙利方法),以变量类型标识开头(小写),以后按有意义的单词每个单词大写(不喜欢用下划线的方式分隔),函数每个单词开头大写(采用BCB那样的),文件名的命名。等等,还有好多。。。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线enjoyo
只看该作者 2楼 发表于: 2005-09-19
GNU的风格和BSD的风格还有一点不一样,俺喜欢BSD的编码风格.
最专业的软件技术社区:华竹技术论坛

http://sinoprise.com

http://sinoprise.net
离线风中纸页
只看该作者 3楼 发表于: 2005-09-19
下面是引用XChinux于2005-09-18 10:32发表的:
我基本上赞同《C++编码标准》(摩托罗拉中国的一个人写的那本书)那本书的观点。
在本版里我也发过一些总结宣读C++编码标准。
代码逐级缩进,代码块的开始的花括号占据一新行,缩进按项目情况看,为4或为8,每个文件都有有文件头注释、函数注释和代码行注释,变量命名规则(不喜欢匈牙利方法我觉得对于debug还是有些用处的),以变量类型标识开头(小写),以后按有意义的单词每个单词首字母?大写(不喜欢用下划线的方式分隔),函数每个单词开头大写(采用BCB那样的),文件名的命名。等等,还有好多。。。



    代码缩紧。GNU的特点是一个tab=8。

[list=2]关于{}。分两种情况,如果是一个函数那么花括号单独占一行,例如:
  1. foo(foo)
  2. {
  3.     //something here.
  4. }

如果是if之类的block,那么需要把{放在if的后面,例如:
  1. if(a < b){

[list=3]注释部分同意
[list=4]关于变量命名和和函数命名。我个人的习惯是:
常量==全大写字母
变量==单词首字母大写(win)==全部小写+下划线(*nix)   这个全看项目的习惯,事先要约定好。
其实匈牙利方法也有它的好处。



我的问题是,编码风格会不会对程序的有影响?尤其是对编译器的优化方面。请留心{}对于block的划分。
把问题先交给google,再交给你的朋友。谢谢。
离线风中纸页
只看该作者 4楼 发表于: 2005-09-19
下面是引用enjoyo于2005-09-19 12:37发表的:
GNU的风格和BSD的风格还有一点不一样,俺喜欢BSD的编码风格.


请详细说明哦。不要撂下一句话就算了。:)
把问题先交给google,再交给你的朋友。谢谢。
在线XChinux

只看该作者 5楼 发表于: 2005-09-19
有一个细节,就是函数后面紧跟圆括号,但是在if, while, for,等这些关键字后面要空一个空格再加圆括号,但是某些关键字使用方式与函数相似,就采用紧跟括号的方式,如sizeof
结构体类型名(要强调的是,此结构体只有数据)要以"_T"结尾;类型名以大写字母开头;
无论是文件头注释还是函数前注释(说明函数的),都以“/**"方式开第一行,下面依次以" * "开头,注意这个星号前后都有空格,以与第一行的第一个星号对齐,以此类推,每一行都是这样开头,最后一行以" */"结尾,注意这个星号前面有一个空格,这个星号也要与第一行的第一个星号对齐。
在这种注释中,每行以一个注释"@"开头的关键字开头,并且在文件头处,最好使用CVS能识别的注释方式,这样,在使用CVS时,就会自动更新日期。这种注释的好处是,能够使用特殊的文档工具从源代码中把文档说明提取出来。我目前所知道的,Java和PHP都是采用这种方式。而C#则是采用的另一种类似XML的方式(以"///"开头,并且以<Summary>your coment</Sumary> 这种方式标识说明)。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线风中纸页
只看该作者 6楼 发表于: 2005-09-19
下面是引用XChinux于2005-09-19 23:07发表的:
有一个细节,就是函数后面紧跟圆括号,但是在if, while, for,等这些关键字后面要空一个空格再加圆括号,但是某些关键字使用方式与函数相似,就采用紧跟括号的方式,如sizeof

原因?习惯还是会对编译造成影响?这个我还真是没有太注意过。-_#
结构体类型名(要强调的是,此结构体只有数据)要以"_T"结尾;类型名以大写字母开头;
无论是文件头注释还是函数前注释(说明函数的),都以“/**"方式开第一行,下面依次以" * "开头,注意这个星号前后都有空格,以与第一行的第一个星号对齐,以此类推,每一行都是这样开头,最后一行以" */"结尾,注意这个星号前面有一个空格,这个星号也要与第一行的第一个星号对齐。

这个很多编辑器都会自动做好,就是当你输入/**以后,回车换行以后会自动加一个*,非常好用。:)



在这种注释中,每行以一个注释"@"开头的关键字开头,并且在文件头处,最好使用CVS能识别的注释方式,这样,在使用CVS时,就会自动更新日期。这种注释的好处是,能够使用特殊的文档工具从源代码中把文档说明提取出来。我目前所知道的,Java和PHP都是采用这种方式。而C#则是采用的另一种类似XML的方式(以"///"开头,并且以<Summary>your coment</Sumary> 这种方式标识说明)。
把问题先交给google,再交给你的朋友。谢谢。
在线XChinux

只看该作者 7楼 发表于: 2005-09-19
以_T结尾,表明这是自己定义的类型,而以_t结尾的,是标准中已经占用了的,比如size_t, time_t这样的类型。
if, while, switch等这些它们不是函数,只是语句,而sizeof则在使用上与函数相似。
还有一些细节问题,可能大家平常都没注意到:
比如,函数的参数列表中,逗号分隔符,要紧跟他前面的参数后面,并且和下一个参数之间空一个空格;有些语句,在一行写不下时,要另换一行,这样,要么采用比前行缩进一个tab的方式,或者使用与第一个参数对齐的方式;有些条件,比如||, &&之类的,换行的时候,除了要注意逻辑方面的意义之外,还要注意,换行后,如果前一行末尾是||或&&之类的,则要把它换到下一行开头;尽管C++支持随处定义类型,但为了便于阅读,还是要把变量定义放到语句块的开头处(比如函数中就要把变量定义放到函数开头处);暂时就想到这么多了,呵呵
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
在线XChinux

只看该作者 8楼 发表于: 2005-09-19
C++编码标准之一:命名原则
http://www.qtcn.org/bbs/read.php?tid=168
C++编码标准之二:类型使用
http://www.qtcn.org/bbs/read.php?tid=167
C++编码标准之三: 函数使用
http://www.qtcn.org/bbs/read.php?tid=166
C++编码标准之四: 类的设计
http://www.qtcn.org/bbs/read.php?tid=152
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线风中纸页
只看该作者 9楼 发表于: 2005-09-19
寒!居然没有看过。-_#
复习~~~
把问题先交给google,再交给你的朋友。谢谢。
离线风中纸页
只看该作者 10楼 发表于: 2005-09-22
放一个文件。:)
把问题先交给google,再交给你的朋友。谢谢。
快速回复
限100 字节
 
上一个 下一个