C语言编码风格(一)——缩进和空白

Linux C语言代码风格 这是一个简短的文档,描述了linux内核的首选编码风格。编码风格非常个人化,我不会强迫我对任何人的观点,但这是我必须能够维护的任何东西,而且我更喜欢它用于其他大多数事情。请至少考虑这里提出的观点。 首先,我建议打印出GNU编码标准的副本, 而不是阅读它。烧掉它们,这是一个伟大的象征性姿态。 无论如何,这里是: 第1章:缩进 标签为8个字符,因此缩进也是8个字符。 有些异端运动试图将缩进4(甚至2... 阅读详情

我们知道C语言的语法对缩进和空白没有要求,空格、Tab、换行都可以随意写,实现同样功能的代码可以写得很好看,也可以写得很难看。

[CodingStyle]中关于空白字符并没有特别规定,因为基本上所有的C代码风格对于空白字符的规定都差不多,主要有以下几条。

1、关键字if、while、for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。例如:
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 <stdio.h> #include <stdlib.h> 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; }

 


注: [ CodingStyle ]    Linux内核源代码目录下的Documentation/CodingStyle文件 .
Linux内核C语言编码风格指南 C语言作为系统编程的核心语言,其编码规范直接影响代码的可读性和可维护性。Linux内核作为全球最大的开源项目之一,其独特的编码风格经过30多年演进,形成了以实用主义为导向的工程实践标准。从基础语法规则到高级设计模式,内核编码规范强调简洁性、一致性和明确性,使用8字符制表符缩进、80字符行宽限制等具体措施保证代码质量。这些规范不仅适用于内核开发,对嵌入式系统、驱动程序等底层软件开发同样具有参考价值。通过checkpatch.pl等自动化工具,开发者可以快速验证代码是否符合Linux内核标准,提升团队协作效率。 阅读详情

相关推荐

C语言-编程技巧-谈谈代码风格──谈谈缩进

缩进的好处不言自明,现在开始,就让你的程序都缩进一下吧。那么怎样才能正确的使用缩进呢?

c语言标准缩进,C语言编码风格(一)——缩进和空白

我们知道C语言的语法对缩进和空白没有要求,空格、Tab、换行都可以随意写,实现同样功能的代码可以写得很好看,也可以写得很难看。[CodingStyle]中关于空白字符并没有特别规定,因为基本上所有的C代码风格对于空白字符的规定都差不多,主要有以下几条。1、关键字if、while、for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。例如:while␣(1);2、双目运算...

weixin_33007509的博客 4713

省一蓝桥杯嵌入式-09RTC实时时钟

RTC(Real-Time Clock)实时时钟,是一个独立的定时器RTC模块拥有一组连续的计数的计数器,在响应软件配置下,可提供时钟、日历、闹钟功能RTC能提供年月日时分秒等信息(可设置)在系统复位或从待机模式唤醒后,RTC的设置时间维持不变(这个我没实现,复位后时间也重置了,有能力的可以自己研究一下)持续时间跟踪:在主系统断电后或处于低功耗模式时,RTC仍继续工作,原理是有额外的电池为其供电(蓝桥杯板子没有这个备用电源,该功能无效。

qq_46392331的博客 1728

C语言代码规范(一)缩进与换行

一、缩进的空格数为4个。 二、“{” 和 “}”各自独占一行。 不规范例子: for(i = 0; i &lt; student_num; i++); { if((score[i] &gt;= 0) &amp;&amp; (score[i]) &lt;= 100) total_score += score[i]; else prin...

Dr_Haven的博客 2万+

电源工程师必看:平均电流模式BUCK双环控制详解(从传递函数到Psim仿真)

本文详细解析了平均电流模式BUCK变换器的双环控制策略,从传递函数推导到Psim仿真实现。针对电源工程师关注的环路设计和稳定性问题,深入比较了电压模式、峰值电流模式和平均电流模式的优缺点,并提供了12V/3A BUCK变换器的完整设计案例,帮助工程师掌握平均电流控制这一中高功率应用的首选方案。

weixin_42696271的博客 394

如何在win11中用双硬盘或移动硬盘装Ubuntu 20.04 双系统

win11 安装双系统

qq_42817360的博客 5137

2、C语言程序规范

1. 代码缩进 2. 变量、常量命名规范 3. 函数的命名规范 4. #include指令 5. 注释 6. main函数 7.函数返回值 8. 变量赋初值

PY洋洋 876

raw_count、tpm、fpkm、rpkm如何选择

转录组测序中常见的数据类型有:raw_count、tpm、fpkm、rpkm。本文进行简单辨析: 一、概念 1 raw_count RNA-seq数据中,raw_count一般是指mapped到基因外显子区域的reads数目。比如说htseq,STAR,或者RSEM等NGS分析流程计算产生的counts值。其中RSEM(RNA-Seq by Expectation-Maximization),考虑到一条read 可能会匹配多个exon位置,故而其产生的为expected_count。 2 TPM

weixin_59289660的博客 1万+

C语言遇空字符缩进,C语言的缩进和空白

C语言的缩进和空白使用原则一般编码缩进规则1.字if、while、for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号例如while (1)2.双目运算符的两侧各插入一个空格分隔,单目运算符和操作数之间不加空格例如:i␣=␣i␣+␣1、++i、!(i␣3.后缀运算符和操作数之间也不加空格例如:取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i],号和;号之...

weixin_42307478的博客 1004

[DA45] 使用PageRank算法分析希拉里邮件中的人物关系

一. 相关知识 (一) PageRank算法 PageRank 算法是 google 公司的创始人拉里·佩奇和谢尔·盖布林于1998年提出的网页搜索优化算法. 详细内容请见百度百科:google pagerank. 如果你了解了该算法, 就能明白上一段的超链接从本页面链出, 链入百度百科的 PageRank 算法页面增加了该页面...

Vincent_Chu的博客 2375

OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存

近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin

猥琐de专注 7186

c语言程序如何首行缩进,什么叫代码缩进

框住N行代码 按TAB键 这样代码有层次感 if (n>0) { //缩进写代码 xxxxxx }什么是代码的缩进格式?是关于C语言.就是源程序的书写格式,看上去可以更清楚。比如 if(a>b) return a; 如果写成 if( a > b) return a; 则更便于程序员看代码。python语法缩进是什么意思对于Python而言代码缩进是一种语法,Python没有像其他...

weixin_35550400的博客 6444

addBumpConnectTargetConstraint 命令详解

本文介绍了Cadence Innovus中用于倒装芯片设计的addBumpConnectTargetConstraint命令的核心功能和使用方法。该命令主要用于为凸点(Bump)添加连接目标约束,通过绑定实例、引脚/网络和端口号等属性,实现凸点与电源/信号网络的精准映射。文章详细解析了命令语法结构、参数说明及使用场景,包括必选参数(指定凸点方式)、分支选择(实例连接或电源连接类型)以及互斥参数(引脚名与网络名)等重要注意事项,并提供了典型应用示例。该命令特别适用于倒装芯片设计中凸点与PG网络、IO实例的连接

u013620135的博客 394

c语言编译缩进风格,C语言编码风格(一)——缩进和空白

我们知道C语言的语法对缩进和空白没有要求,空格、Tab、换行都可以随意写,实现同样功能的代码可以写得很好看,也可以写得很难看。[CodingStyle]中关于空白字符并没有特别规定,因为基本上所有的C代码风格对于空白字符的规定都差不多,主要有以下几条。1、关键字if、while、for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。例如:while␣(1);2、双目运算...

weixin_34763128的博客 1169

《派出你的AI同事:WorkBuddy案例实战》062:投研资讯摘要与预警

投研资讯摘要与预警:新闻、公告、行情交给 AI 同事提炼与预警,投研从“刷资讯”变成“读摘要”。

LuckyHanMo的博客 181

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c语言自动缩进原理,C语言编码风格(一)——缩进和空白

我们知道C语言的语法对缩进和空白没有要求,空格、Tab、换行都可以随意写,实现同样功能的代码可以写得很好看,也可以写得很难看。[CodingStyle]中关于空白字符并没有特别规定,因为基本上所有的C代码风格对于空白字符的规定都差不多,主要有以下几条。1、关键字if、while、for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。例如:while␣(1);2、双目运算...

weixin_39522423的博客 1259

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LinuxC语言中编码风格——以linux内核的编码风格为例

文章目录一、注释和空白 一、注释和空白

喜欢打篮球的普通人 510

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

第九章:编码风格

5.以上关于双目运算符和后缀运算符的规则不是严格要求的,有时为了突出优先级也可以写得紧凑一些,for(i=1;1.关键字if,while,for与其后的控制表达式的(括号之间插入一个空格分隔,担括号内的表达式应紧贴括号。6.由于标准的linux终端是24行80元旦,接近或大于80个字符的较长语句要折行写,折行后的空格和上面的表达式或参数对齐。2.双目运算符的两侧各插入一个空格分隔,单目运算符和操作数之间不加空格。3.后缀运算符和操作数之间不加空格,如结构体成员 s.a,函数调用 foo(arg1)

code 306

Linux Kernel编码风格(中文版)

转自:http://learn.akae.cn/media/ch09.html 代码风格好不好就像字写得好不好看一样,如果一个公司招聘秘书,肯定不要字写得难看的,同理,代码风格糟糕的程序员肯定也是不称职的。虽然编译器不会挑剔难看的代码,照样能编译通过,但是和你一个team的其他程序员肯定受不了,你自己也受不了,写完代码几天之后再来看,自己都不知道自己写的是什么。Structureand In...

jubincn的专栏 810

C语言入门(九)——编码风格

代码风格好不好就像字写得好不好看一样,如果一个公司招聘秘书,肯定不要字写得难看的,同理,代码风格糟糕的程序员肯定也是不称职的。虽然编辑器不会挑剔难看的代码,照样能编译通过,但是和你一个Team的其他程序员肯定受不了,你自己也受不了,写完代码几天之后再来看,自己都不知道自己写的是什么。代码主要为了写给人看的,而不是给机器看的,只是顺便也能用机器执行而已,如果是为了写给机器看那直接写机器指令就好了,没必要用高级语言了。代码和语言文字一样是为了表达思想,记载信息,所以一定要写的清楚整洁才能有效的表达。

m0_58367586的博客 5067

编码风格-做一个会讲故事的程序员

写代码维护代码这么多年了,每每看到美的代码就像是欣赏诗句,阅读故事,然而当看到糟糕丑陋的代码时,那就是一场噩梦啊. 代码规范真得是一个程序员要好好遵循的职业素养。微软PC的强大,助长了他自己提出的骆驼法则,依个人经验,我觉得Windows程序员写代码,在敲诸如m_n, m_c, m_l, 等等类型时,不知浪费了多少时光。好的名字,好的变量本身就隐藏着类型,何必再说明,况且你还是最终不时的看各个变量

simonzhao0536的专栏 1355

编码风格

第九章 编码风格 代码主要是为了写给人看的,而不是给机器看的,只是顺便能用机器执行而已,如果是为了写给机器看那直接写机器码就好了,没必要用高级语言了。代码和语言文字一样是为了表达思想、记载信息,所以一定要写的清楚采纳呢有效地表达。 1.缩进和空白 基本上所有的C代码风格对于空白符的规定规定都差不多,主要有以下几条:   1) 关键字if,while,for与其后的控制表达式的(括号之间插入...

weixin_30945039的博客 146

Linux C编码风格

很久之前从网上下载的一篇文档,现在也忘记具体地址了,打算清一下电脑,贴在这里保存吧。 代码风格好不好就像字写得好不好看一样,如果一个公司招聘秘书,肯定不要字写得难看的,同理,代码风格糟糕的程序员肯定也是不称职的。虽然编译器不会挑剔难看的代码,照样能编译通过,但是和你一个team的其他程序员肯定受不了,你自己也受不了,写完代码几天之后再来看,自己都不知道自己写的是什么。Structureand...

jubincn的专栏 189

编码风格之(2)C语言规范(Linux内核风格)

本文总结并且描述Linux内核的编码风格,这是一份存在很久的文档,其实每一种编码风格都有其侧重点,也不会面面俱到,对于我们来说,不妨放下内心的偏见,博纳众家之长,丰富认知和经验。这是一个简短的文档,描述了linux内核的首选编码风格。编码风格是非常个人化的,我不会把我的观点强加给任何人,但这是我必须能够维护的任何东西,我也希望它适用于大多数其他东西。请至少考虑一下这里提出的观点。首先,我建议打印一份GNU编码标准的副本,不要读它。烧了它们,这是一个很好的象征性姿态。

梅花香自苦寒来,宝剑锋从磨砺出。 1599

编码风格之(1)C语言建议规范

介绍锐捷风格的C语言规范

梅花香自苦寒来,宝剑锋从磨砺出。 1237

Linux C语言编码风格

最近看了《Linux C编程一站式学习》觉得编码风格还是挺重要的,在学习的过程中在博客中做下相关总结,应该会对自己的编码风格印象深刻些,希望自己以后都能遵守这样的好的编码风格。原文地址:http://docs.linuxtone.org/ebooks/C&CPP/c/ch09.html 1、缩进和空白 1)关键字if, while, for与其后的控制表达式的括号“(”之间插入一个空格

wjonuee的博客 1479
上一篇: Eclipse 4.2 安装 SWT 插件教程。
下一篇: C语言知识点总结
小楠瓜饼
博客等级 码龄16年 38粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值