在 Linux 下,比较流行的“行业”风格有 KR 的编码风格、GNU 的编码风格、Linux 内核的编码风格(基于 KR 的,缩进是 8 个空格)等,它们都可以通过 indent 命令格式化,对应的选项分别是-kr-gnu-kr -i8

下面演示用 indent 命令把代码格式化成上面的三种风格。

这样糟糕的编码风格看着会让人想“哭”,太难阅读啦:

$ cat > test.c
/* test.c -- a test program for using indent */
#include<stdio.h>int main(int argc, char *argv[])
{int i=0;if (i != 0) {i++; }else {i--; };for(i=0;i<5;i++)j++;printf("i=%d,j=%d\n",i,j);return 0;
}

格式化成 KR 风格,好看多了:

$ indent -kr test.c
$ cat test.c
/* test.c -- a test program for using indent */
#include<stdio.h>int main(int argc, char *argv[])
{int i = 0;if (i != 0) {i++;} else {i--;};for (i = 0; i < 5; i++)j++;printf("i=%d,j=%d\n", i, j);return 0;
}

采用 GNU 风格,感觉不如 KR 的风格,处理 if 语句时增加了代码行,却并没明显改进效果:

$ indent -gnu test.c
$ cat test.c
/* test.c -- a test program for using indent */
#include<stdio.h>int
main (int argc, char *argv[])
{int i = 0;if (i != 0){i++;}else{i--;};for (i = 0; i < 5; i++)j++;printf ("i=%d,j=%d\n", i, j);return 0;
}

实际上 indent 命令有时候会不靠谱,也不建议“先污染再治理”,而是从一开始就坚持“可持续发展”的观念,在写代码时就逐步养成良好的风格。

需要提到地是,Linux 的编码风格描述文件为内核源码下的 Documentation/CodingStyle,而相应命令为 scripts/Lindent。

linux转换C编码风格相关推荐

  1. java linux urlencode_java字符编码转换研究(转)

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  2. linux windows 字符编码转换,Linux操作系统下汉字编码的转换

    因为项目的需要linux下将GBK编码转换为utf8编码,google一下,网上的相关资源比较少,下面的操作经过本人的反复试验.本例子同样适用于其他的编码转换. 有gbk到utf8的转换过程,需要经过 ...

  3. linux检测文件名编码,Linux下查看文件编码,文件或文件名编码格式转换 | 缥缈的云...

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...

  4. Linux 内核编码风格【转】

    原文:http://www.cnblogs.com/baochuan/archive/2013/04/08/3006615.html Linux 内核编码风格 序 像其他大型软件一样,Linux制订了 ...

  5. 使用iconv命令轻松实现linux下字符集编码的转换

    昨天晚上郎师兄打电话说,我的结果文件他打开是乱码,问我是不是字符编码没处理好.早晨早早的来到实验室,请教了下同学,才知道linux shell 配置文件中默认的字符集编码为UTF-8 .UTF-8是u ...

  6. linux下使用iconv转换编码,linux iconv 转换文件编码

    查看文件编码 file -i filename 递归转换(包括子文件夹) find default -type d -exec mkdir -p utf/{} \; find default -typ ...

  7. Astyle Linux编码风格配置

    一.安装Astyle 1.1 下载Astyle 下载地址:  Artistic Style download | SourceForge.net 1.2 安装Astyle Astyle是免安装的,只需 ...

  8. linux下iconv编码转换的用法

     一共需要三步: 1. iconv_t iconv_open(const char *tocode, const char *fromcode);    //用这个函数获得句柄(iconv类型的返 ...

  9. Linux C语言代码风格

    这是一个简短的文档,描述了linux内核的首选编码风格.编码风格非常个人化,我不会强迫我对任何人的观点,但这是我必须能够维护的任何东西,而且我更喜欢它用于其他大多数事情.请至少考虑这里提出的观点. 首 ...

最新文章

  1. 【Java】环形链表 ( 给定一个链表,判断链表中是否有环)
  2. 查找字符串里面有没有相同的字符- -
  3. 收了100元辛苦费,写了一个最简单的C#ASP.NET的3层架构例子代码,源码是通过代码生成器生成的【写程序的效率神奇的高】...
  4. 《Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study》
  5. m40型工业机器人_工业机器人4大控制方式,你知道几种?
  6. 保姆级!!前端必会Taro入门级教学!!
  7. Python基础(三)--序列
  8. C/C++ OpenCV读取视频与调用摄像头
  9. matlab 运算程序时间计算
  10. 20211201:力扣第268周双周赛(上)
  11. hdu1426 Sudoku Killer
  12. 几个常用的shell脚本
  13. MAC编译freetype
  14. 问题adb remount提示Devices Locked
  15. 如何免费将jpg转换为word可编辑
  16. 干净的国内系统镜像源
  17. Millet谷仓:区块链和电商的完美融合
  18. 天下武功,无坚不破,唯快不破
  19. ASP.NET MVC --- 身份认证与授权
  20. prometheus 配置服务器监控、服务监控、容器中服务监控与告警

热门文章

  1. maven将xml文件一起打包
  2. html表单的数据保存在哪里,提交和保存表单数据
  3. php并发扣款,PHP 并发扣款,保证数据一致性(悲观锁)
  4. mac安装brew(亲测有效)
  5. ASCII、Unicode、GBK、UTF-8之间的关系
  6. node.js:fs.open 和 fs.write 读取文件和改写文件
  7. mysql训练逻辑的题_全国计算机等级考试二级教程mysql复习题练习题.docx
  8. java的drawstring_java-Graphics.drawString()未绘制
  9. jquery的sortable拖拽排序问题,在页面上多次拖拽保存顺序之后,刷新页面,排序出现紊乱
  10. 史上超级详细:HashMap源码分析,你了解到源码的魅力了嘛