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

while␣(1);

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

3、后缀运算符和操作数之间也不加空格,例如取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i]。

4、,号和;号之后要加空格,这是英文的书写习惯,例如for␣(i␣=␣1;␣i␣

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␣

&&␣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. c语言程序如何首行缩进,什么叫代码缩进

    框住N行代码 按TAB键 这样代码有层次感 if (n>0) { //缩进写代码 xxxxxx } 什么是代码的缩进格式?是关于C语言.就是源程序的书写格式,看上去可以更清楚.比如 if(a&g ...

  2. php代码缩进,PHPStorm PHP代码缩进

    我需要这些代码块被正确地缩进: $this->render('rights', array( 'admin' => $admin, 'editor' => $editor, 'aut ...

  3. Qt Creator缩进文字或代码

    Qt Creator缩进文字或代码 缩进文字或代码 缩进C ++文件 自动格式化和缩进 缩进QML文件 缩进Nim文件 缩进其他文本文件 指定选项卡设置 指定制表符和缩进 指定键入选项 指定内容设置 ...

  4. python语法简洁清晰特色之一是强制用什么作为语句缩进_python语言特色

    广告关闭 提供包括云服务器,云数据库在内的50+款云计算产品.打造一站式的云产品试用服务,助力开发者和企业零门槛上云. 简单了解pythonpython语言特色1. python是一门解释性语言解释性 ...

  5. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例

    R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码.tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例 ...

  6. R语言广义线性模型Logistic回归案例代码

    R语言广义线性模型Logistic回归案例代码 在实际应用中,Logistic模型主要有三大用途: 1)寻找危险因素,找到某些影响因变量的"坏因素",一般可以通过优势比发现危险因素 ...

  7. C 语言编程 — 结构化程序流的汇编代码与 CPU 指令集

    目录 文章目录 目录 文章目录 为什么要保留汇编语言 顺序程序流 条件程序流 循环程序流 函数调用栈的工作原理 文章目录 <C 语言编程 - GCC 工具链> <C 语言编程 - 程 ...

  8. 动图图解C语言选择排序算法,含代码分析

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  9. 使用VS2019开始第一个C语言程序,环境安装配置+代码实例

    C语言文章更新目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分 ...

最新文章

  1. 2.搭建cassandra时遇到没有公网网卡的问题
  2. 类的构造函数和析构函数详解
  3. linux空洞目录,学习笔记:linux之文件空洞
  4. node学习笔记_01 环境搭建
  5. Android之Android:layout_weight详解
  6. BaseActivity的抽取
  7. 老蒋的 用WDCP 搭建
  8. 数据智能是未来商业的核心竞争力之一
  9. 【CSS】常用特效字
  10. iPhone垃圾信息被骂惨了,苹果一拍脑门:上机器学习呀
  11. 成都睿铂盘点无人机航测三个极端恶劣环境的人员与设备防护指南
  12. 雷林鹏分享:MySQL DELETE 语句
  13. mysql 安装问题汇总_Windows 10 下MySQL安装及常见问题
  14. matlab sparse()
  15. 软件体系结构风格介绍
  16. 中兴java笔试题_中兴Java开发笔试题目及答案(7)
  17. bismark判断甲基化的比对原理
  18. vue---lodash的使用
  19. AndroidManifest.xml中常用属性及含义
  20. verilog语言的ps2键盘驱动设计

热门文章

  1. nginx经过多层代理后获取真实来源ip
  2. asynchronous vs non-blocking
  3. 本地计算机上的服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止 解决办法...
  4. 【详解】消息队列和线程关系
  5. [python] ZZ 随机数生成
  6. OpenCV初探 —— VS2019配置环境
  7. 编写访问数据库的应用层程序,经常catch出的一些错误
  8. Seata分布式事务问题由来---微服务升级_SpringCloud Alibaba工作笔记0056
  9. 微服务升级_SpringCloud Alibaba工作笔记0017---Nacos之服务消费者注册和负载
  10. Netty工作笔记0008---NIO的Buffer的机制及子类