Linux下的程式碼格式工具詳解(indent, clang-format, astyle)
1 indent
indent
可辨識 C
的原始程式碼檔案, 並加以格式化, 以方便程式設計師閱讀.
Linux kernel
有一個指令碼 Lindent
, 參見scripts/Lindent
, 用來格式化 kernel
程式碼. 這個指令碼就是通過 indent
工具來完成程式碼格式化的
Ubuntu
下 indent
可以通過如下方式安裝
sudo apt-get install indent
功能說明:調整C原始程式碼檔案的格式。
語 法:indent [引數][原始檔] 或 indent [引數][原始檔][-o 目標檔案]
引數 | 說明 |
---|---|
-bad或–blank-lines-after-declarations | 在宣告區段或加上空白行 |
-bap或–blank-lines-after-procedures | 在程式或加上空白行 |
-bbb或–blank-lines-after-block-comments | 在註釋區段後加上空白行 |
-bc或–blank-lines-after-commas | 在宣告區段中,若出現逗號即換行 |
-bl或–braces-after-if-line | if(或是else,for等等)與後面執行區段的”{“不同行,且”}”自成一行 |
-bli<縮排格數>或–brace-indent<縮排格數> | 設定{ }縮排的格數 |
-br或–braces-on-if-line | if(或是else,for等等)與後面執行跛段的”{“不同行,且”}”自成一行 |
-bs或–blank-before-sizeof | 在sizeof之後空一格。 |
-c<欄數>或–comment-indentation<欄數> | 將註釋置於程式碼右側指定的欄位 |
-cd<欄數>或–declaration-comment-column<欄數> | 將註釋置於宣告右側指定的欄位 |
-cdb或–comment-delimiters-on-blank-lines | 註釋符號自成一行 |
-ce或–cuddle-else | 將else置於”}”(if執行區段的結尾)之後 |
-ci<縮排格數>或–continuation-indentation<縮排格數> | 敘述過長而換行時,指定換行後縮排的格數 |
-cli<縮排格數>或–case-indentation-<縮排格數> | 使用case時,switch縮排的格數 |
-cp<欄數>或-else-endif-column<欄數> | 將註釋置於else與elseif敘述右側定的欄位 |
-cs或–space-after-cast | 在cast之後空一格 |
-d<縮排格數>或-line-comments-indentation<縮排格數> | 針對不是放在程式碼右側的註釋,設定其縮排格數 |
-di<欄數>或–declaration-indentation<欄數> | 將宣告區段的變數置於指定的欄位 |
-fc1或–format-first-column-comments | 針對放在每行最前端的註釋,設定其格式 |
-fca或–format-all-comments | 設定所有註釋的格式 |
-gnu或–gnu-style. | 指定使用GNU的格式,此為預設值 |
-i<格數>或–indent-level<格數> | 設定縮排的格數 |
-ip<格數>或–parameter-indentation<格數> | 設定引數的縮排格數 |
-kr或–k-and-r-style. | 指定使用Kernighan&Ritchie的格式 |
-lp或–continue-at-parentheses | 敘述過長而換行,且敘述中包含了括弧時,將括弧中的每行起始欄位內容垂直對其排列 |
-nbad或–no-blank-lines-after-declarations | 在宣告區段後不要加上空白行 |
-nbap或–no-blank-lines-after-procedures | 在程式後不要加上空白行 |
-nbbb或–no-blank-lines-after-block-comments | 在註釋區段後不要加上空白行 |
-nbc或–no-blank-lines-after-commas | 在宣告區段中,即使出現逗號,仍舊不要換行 |
-ncdb或–no-comment-delimiters-on-blank-lines | 註釋符號不要自成一行。 |
-nce或–dont-cuddle-else | 不要將else置於”}”之後。 |
-ncs或–no-space-after-casts | 不要在cast之後空一格。 |
-nfc1或–dont-format-first-column-comments | 不要格式化放在每行最前端的註釋 |
-nfca或–dont-format-comments | 不要格式化任何的註釋。 |
-nip或–no-parameter-indentation | 引數不要縮排 |
-nlp或–dont-line-up-parentheses | 敘述過長而換行,且敘述中包含了括弧時,不用將括弧中的每行起始欄位垂直對其排列 |
-npcs或–no-space-after-function-call-names | 在呼叫的函式名稱之後,不要加上空格 |
-npro或–ignore-profile | 不要讀取indent的配置檔案.indent.pro |
-nprs或者–space-after-parentheses | 在”(”後”)”前不插入空格 |
-npsl或–dont-break-procedure-type | 程式型別與程式名稱放在同一行 |
-nsc或–dont-star-comments | 不在生成的塊註釋中加, 註解左側不要加上星號() |
-nsob或–leave-optional-semicolon | 不用處理多餘的空白行 |
-nss或–dont-space-special-semicolon | 若for或while區段僅有一行時,在分號前不加上空格。 |
-nv或–no-verbosity | 不顯示詳細的資訊 |
-orig或–original | 使用Berkeley的格式 |
-pcs或–space-after-procedure-calls | 在呼叫的函式名稱與”{“之間加上空格 |
-psl或–procnames-start-lines | 程式型別置於程式名稱的前一行。 |
-sc或–start-left-side-of-comments | 在每行註釋左側加上星號(*) |
-sob或–swallow-optional-blank-lines | 刪除多餘的空白行 |
-ss或–space-special-semicolon | 若for或swile區段今有一行時,在分號前加上空格 |
-st或–standard-output | 將結果顯示在標準輸出裝置 |
-saf或者–space-after-for | for後面有空格 |
-sai或者–space-after-if | if後面有空格 |
-saw或者–space-after-while | while後面有空格 |
-T | 資料型別名稱縮排 |
-ts<格數>或–tab-size<格數> | 設定tab的長度 |
pcs或者–space-after-procedure-calls | 函式和”(“之間插入一個空格 |
psl或者–procnames-start-lines | 將函式名和返回型別放在兩行定義 |
-ut或者–use-tabs | 使用tab來縮排 |
-v或–verbose | 執行時顯示詳細的資訊 |
-version | 顯示版本資訊 |
2 clang-format
clang
編譯器中整合的程式碼格式化工具,
官方文件參見
3 AStyle
Astyle
的全稱是 Artistic Style
, 某種程度是目前最好用的程式碼整理工具, 很多所謂的程式碼整理工具其實都是拿這個東東改進, 開發的.
相關推薦
Linux下的程式碼格式工具詳解(indent, clang-format, astyle)
1 indent indent 可辨識 C 的原始程式碼檔案, 並加以格式化, 以方便程式設計師閱讀. Linux kernel 有一個指令碼 Lindent, 參見script
Linux 下hosts文件詳解
domain none oca 不同 詳解 als 機器 區別 int Linux 下hosts文件詳解 主機名: 無論在局域網還是INTERNET上,每臺主機都有一個IP地址,是為了區分此臺主機和彼臺主機,也就是說IP地址就是主機的門牌號。 公網:IP地
【轉載】linux下的mount命令詳解;
文件的 flag 自動加載 網絡文件系統 解決問題 選項 lock home 多個參數 以下內容來自:http://blog.csdn.net/clozxy/article/details/5299054 http://linux.chinaunix.net/techdo
Linux下使用Corosync+Pacemaker詳解及安裝
corosync pacemaker 珠聯璧合 Corosync詳解OpenAIS概述OpenAIS是基於SA Forum 標準的集群框架的應用程序接口規範。OpenAIS提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,集群監測等,能夠為集群軟件或工具提供滿足 AIS標準的集
Linux下inittab文件詳解
tle sso 根據 UC number mage failure 並且 命令行模式 /etc/inittab文件詳解 Linux系統的啟動過程為:加電自檢-->根據BIOS中的設置從指定的設備啟動-->找到設備MBR中的bootloader引導啟動系統--&
Linux進程管理工具詳解
進程管理工具 進程管理工具 查看進程 pstree 顯示進程樹 -p:顯示PID ps 搜索進程 ps | grep pgrep pidof系統監控工具
linux下路由設置詳解
RoCE ive sys 路由route 寫入文件 路由表 ado per 數據 路由表信息解釋 ##名詞解釋:Active Routes:活動的路由Network destination :目的網段Netmask:子網掩碼Gateway:網關,又稱下一跳路由器。在發送
Linux下套接字詳解---epoll模式下的IO多路複用伺服器
1 epoll模型簡介 epoll可是當前在Linux下開發大規模併發網路程式的熱門人選,epoll 在Linux2.6核心中正式引入,和select相似,其實都I/O多路複用技術而已,並沒有什麼神祕的。 其實在Linux下設計併發網路程式,向來不缺少方法,比如典型的Apache模型(Proce
Linux下clock gettime函式詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
linux 下的連結檔案詳解
轉載來自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 轉載來自:(這個哥們加工了的,各種顏色,美化)http://www.cnblogs.com/li-hao/p/4107964.html
【轉載】Linux下安裝軟體命令詳解
【轉載日期】2018.09.11 【轉載標題】Linux下安裝軟體命令詳解 ----------------------------------------------------------------------------------------------
linux下opensll加解密詳解
1、使用tar對檔案壓縮加密: 在當前目錄下有一個pma目錄的資料夾: tar -zcvf - pma|openssl des3 -salt -k password | dd of=pma.des3 完成將得到一個pma.des3的打包檔案,用你設定的密碼替換password。 2、使用ta
Linux下MongoDB 安裝配置詳解
1.MongoDB簡單說明 a MongoDB是由C++語言編寫的一個基於分散式檔案儲存的開源資料庫系統,它的目的在於為WEB應用提供可擴充套件的高效能資料儲存解決方案。 b MongoDB是一個介於關係型資料庫和非關係型資料庫之間的產品,是非關係型資料庫當中功能
(筆記)Linux下的ioctl()函式詳解
我這裡說的ioctl函式是指驅動程式裡的,因為我不知道還有沒有別的場合用到了它,所以就規定了我們討論的範圍。寫這篇文章是因為我前一陣子被ioctl給搞混了,這幾天才弄明白它,於是在這裡清理一下頭腦。 一、 什麼是ioctl ioctl是裝置驅動程
linux下配置yum源詳解
本人使用的方法一,成功配置,方法二沒測過,可以作為參考 方法一: 1.確保RHEL5中已經安裝了yum [[email protected] ~]# rpm -qa |grep yum yum-metadata-parser-1.1.2-3.el5 yum-up
linux下的tar命令詳解
通過SSH訪問伺服器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。 tar命令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定檔案建立檔案(備份檔案),也可以在檔案中改變檔案,或者向檔案
Tomact8部署在linux下啟動很慢詳解
轉載老大的部落格~我們當時遇到的實際問題解決辦法,作為一個記錄 ————————————————————分割線—————————————————— Tomcat 8熵池阻塞變慢詳解 Tomcat 8啟動很慢,且日誌上無任何錯誤,在日誌中檢視到如下資訊: Log4j:[2015-10-29 15:4
【轉發】centos 7開啟FTP以及新增使用者配置許可權,只允許訪問自身目錄,不能跳轉根目錄 linux下ftp配置檔案詳解
1.切換到root使用者 2.檢視是否安裝vsftp,我這個是已經安裝的。 [[email protected] vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64 3.如果沒有發現,則安裝。 yum ins
Linux下原始碼編譯安裝詳解
前言 原始碼要執行,必須先轉成二進位制的機器碼。這是編譯器的任務。 比如,下面這段原始碼(假定檔名叫做test.c)。 #include <stdio.h> int main(void) { fputs("Hello, world!\n", stdout
Linux下套接字詳解(十)---epoll模式下的IO多路複用伺服器
1 epoll模型簡介 epoll可是當前在Linux下開發大規模併發網路程式的熱門人選,epoll 在Linux2.6核心中正式引入,和select相似,其實都I/O多路複用技術而已,並沒有什麼神祕的。 其實在Linux下設計併發網路程式,向來不缺少