- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux编程风格 0.1一、GNU风格1.函数返回类型说明和函数名分两行放置,函数起始字符和函数开头左花括号放到最左边,例如:static char *main (argc, argv) int argc; char *argv[];{ ......}或者是用标准C:static char *main (int argc, char *argv[]){ ......}如果参数太长不能放到一行,请在每行参数开头处对齐:intnet_connect (struct sockaddr_in *cs, char *server, unsigned short int port, char *sourceip, unsigned short int sourceport, int sec)对于函数体,我们应该按照如何方式排版: 在左括号之前、逗号之后,以及运算符号前后添加空格使程序便于阅读,例如:if (x foo (y, z)) haha = bar[4] + 5;else { while (z) { haha += foo (z, z); z--; } return ++x + bar ();}当一个表达式需要分成多行书写的时候,应该在操作符之前分割。例如:if (foo_this_is_long bar win (x, y, z) remaining_condition)2. 尽量不要让两个不同优先级的操作符出现在相同的对齐方式中,应该附加额外的括号使得代码缩进可以表示出嵌套。例如:错误的对齐:mode = (inmode[j] == VOIDmode || GET_MODE_SIZE (outmode[j]) GET_MODE_SIZE (inmode[j]) ? outmode[j] : inmode[j];正确的对齐:mode = ((inmode[j] == VOIDmode || (GET_MODE_SIZE (outmode[j]) GET_MODE_SIZE (inmode[j]))) ? outmode[j] : inmode[j];3. 按照如下方式排版do-while语句:do { a = foo (a); }while (a 0);4. 每个程序都应该以一段简短的说明其功能的注释开头。例如:/* fmt - filter for simple filling of text */5. 请为每个函数书写注释,说明函数做了什么,需要那些种类的参数,参数可能值的含义和用途。如果用了非常见的、非标准的东西,或者可能导致函数不能工作的任何可能的值,应该对他们进行说明。如果存在重要的返回值,也需要说明。6. 不要声明多个变量时跨行,每一行都以一个新的声明开头。例如:错误的声明:int foo, bar;正确的声明:int foo, bar;或者:int foo;int bar;如果他们是全局变量,在每一个之前都应该注释。7. 当一个if中嵌套了另一个if-else时,应用花括号把if-else括起来。例如,不要写:if (foo) if (bar) win (); else lose ();而要写:if (foo) { if (bar) win (); else lose (); }如果再else中嵌套了一个if,可以这样写else if:if (foo) ...else if (bar) ... 按照与then那部分代码相同的缩进方式缩进else if的then部分代码,也可以在花括号中像下面那样把if嵌套起来:if (foo) ...else { if (bar) ... } 8. 要在同一个声明中同时说明结构标识和变量或者结构标识和类型定义(typedef)。单独的说明结构标识,而后用它定义的变量或者定义类型。9. 尽量避免在if的条件中进行赋值。例如,不要写:if ((foo = (char *) malloc (sizeof *foo)) == 0) fatal (virtual memory exhausted);而要写:foo = (char *) malloc (sizeof *foo);if (foo == 0) fatal (virtual memory exhausted); 10. 请在名子中使用下划线以分割单词,尽量适用小写;把大写字母留给宏和枚举常量,以及根据统一惯例使用前缀。例如,应该使用类似ignore_space_change_flag的名子;不要使用类似iCantReadThis的名子。11. 用于表明一个命令行选项是否给出的变量应该在选项含义的说明之后,而不是选项字符之后被命名。一条注释既应该说明选项的精确含义,又应该说明选项的字母。例如:/* ignore chan
您可能关注的文档
最近下载
- (第二次全国土地调查土地分类.doc VIP
- DLT 5210.1-2021 电力建设施工质量验收规程全套表格最新1至200页.docx
- DLT 5210.1-2021 电力建设施工质量验收规程全套表格最新201至400页.docx
- 北京市海淀区2024年七年级下学期数学期中考试试卷及答案.pdf VIP
- Unit 3 第1课时 Get ready ~ Start up(课件)2024-2025学年度外研版英语三年级下册.pptx
- 团播主持人话术.pdf VIP
- 【社会化网格治理研究的国内外文献综述5700字】.docx VIP
- 社区心理咨询室工作方案及流程.docx VIP
- 员工末等调整和不胜任退出管理办法.docx VIP
- 制杯不良识别培训(员工)2017920.pdf VIP
文档评论(0)