C/C++知识点之c语言编码风格(1)---->>Linux C编程
小标 2018-10-10 来源 : 阅读 1204 评论 0

摘要:本文主要向大家介绍C/C++知识点之c语言编码风格(1)---->>Linux C编程了,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍C/C++知识点之c语言编码风格(1)---->>Linux C编程了,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

缩进和空白相关:


1、关键字if/while/for/switch/case与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。例如:

while (1); 

2、双目运算符的两侧各插入一个空格分隔,单目运算符和操作数之间不加空格,例如

i = i + 1, ++i, !(i < 1), -x, &a[1]

等。
3、后缀运算符和操作数之间也不加空格,例如取结构体成员 s.a 、函数调用 foo(arg1) 、取数组成员 a[i] 。
4、,号和;号之后要加空格,这是英文的书写习惯,例如:

for (i = 1; i < 10; i++)               foo(arg1, arg2);

5、以上关于双目运算符和后缀运算符的规则并没有严格要求,有时候为了突出优先级也可以写得更紧凑一些,例如

for (i=1; i<10; i++)                  distance = sqrt(x*x + y*y);

等。但是省略的空格一定不要误导了读代码的人,例如

a||b && c

很容易让人理解成错误的优先级。
6、由于UNIX系统标准的字符终端是24行80列的,接近或大于80个字符的较长语句要折行写,折行后用空格和上面的表达式或参数对齐,例如:

if (sqrt(x*x + y*y) > 5.0
    && x < 0.0
    && y > 0.0)

再比如:

foo(sqrt(x*x + y*y),
    a[i-1] + b[i-1] + c[i-1])

7、较长的字符串可以断成多个字符串然后分行书写,例如:

printf("This is such a long sentence that "
       "it cannot be held within a line\n");

C编译器会自动把相邻的多个字符串接在一起,以上两个字符串相当于一个字符串"This is such a long sentence that it cannot be held within a line\n"8、有的人喜欢在变量定义语句中用Tab字符,使变量名对齐,这样看起来很美观。

       →int    →a, b;
       →double →c;

内核代码风格关于缩进的规则有以下几条。1、要用缩进体现出语句块的层次关系,使 用Tab字符缩进,不能用空格代替Tab。在标准的字符终端上一个Tab看起来是8个空格的宽度,如果你的文本编辑器可以设置Tab的显示宽度是几个空 格,建议也设成8,这样大的缩进使代码看起来非常清晰。如果有的行用空格做缩进,有的行用Tab做缩进,甚至空格和Tab混用,那么一旦改变了文本编辑器 的Tab显示宽度就会看起来非常混乱,所以内核代码风格规定只能用Tab做缩进,不能用空格代替Tab。2、if/else、while、do/while、for、switch这些可以带语句块的语句,语句块的{或}应该和关键字写在同一行,用空格隔开,而不是单独占一行。例如应该这样写:

if (...) {
       →语句列表
} else if (...) {
       →语句列表
}

但很多人习惯这样写:

if (...)
{
       →语句列表
}
else if (...)
{
       →语句列表
}

内核的写法和[K&R]一致,好处是不必占太多行,使得一屏能显示更多代码。这两种写法用得都很广泛,只要在同一个项目中能保持统一就可以了。3、函数定义的{和}单独占一行,这一点和语句块的规定不同,例如:

int foo(int a, int b)
{
       →语句列表
}

4、switch和语句块里的case、default对齐写,也就是说语句块里的case、default标号相对于switch不往里缩进,但标号下的语句要往里缩进。例如:

      →switch (c) {
      →case ‘A‘:
      →       →语句列表
      →case ‘B‘:
      →       →语句列表
      →default:
      →       →语句列表
      →}

用于goto语句的自定义标号应该顶头写不缩进,而不管标号下的语句缩进到第几层。5、代码中每个逻辑段落之间应该用一个空行分隔开。例如每个函数定义之间应该插入一个空行,头文件、全局变量定义和函数定义之间也应该插入空行,例如:

#include 
#include 

int g;
double h;

int foo(void)
{
       →语句列表
}

int bar(int a)
{
       →语句列表
}

int main(void)
{
       →语句列表
}

6、一个函数的语句列表如果很长,也可以根据相关性分成若干组,用空行分隔。这条规定不是严格要求,通常把变量定义组成一组,后面加空行,return语句之前加空行,例如:

int main(void)
{
       →int    →a, b;
       →double →c;

       →语句组1

       →语句组2

       →return 0;
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程