日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核_Linux内核编程风格简介

發(fā)布時間:2025/3/11 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核_Linux内核编程风格简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
01不同的語言風格

當今世界上一共有5000多種語言。不同的國家、民族和地區(qū),說著不同的語言。每個民族不一定有自己的文字,但一般都會有自己的語言。即使是同一種語言,在不同的時代、不同的地區(qū)和群體,說話的方式和語言風格也各不相同。同樣是劉備《三顧茅廬》的故事,如果換成不同的人去說,你會發(fā)現(xiàn)說話方式和語言風格大相徑庭:

TVB腔:吶,做人呢,最重要的是開心。玄德你餓不餓,我煮碗面給你吃。

日系風:玄德桑是懷著對天下美好的期盼來的吧,真是讓人無法拒絕呢。

歐美翻譯腔:噢!上帝!你怎么來三次了!我對上帝發(fā)誓,我不是故意要你等的!

東北腔:艾瑪!您來就來吧,您還來三次,這整滴啥玩意兒啊?快進來吧,都哆嗦了。

班主任腔:讓你來三次,是為了你好!以后你就知道了!

知乎大V風:謝邀,人在南陽,剛下飛機。作為臥龍崗小透明,圈子小熟人多所以先匿了。一覺起來這么多贊,看到玄德兄等了這么久,又實名反對高贊答案,不知能否私信分享下:吃了三次閉門羹是一種怎樣的體驗?

如果換成郭敬明,話風可能又變成這樣:在這無盡的寂寞里,時間化為了灰燼,大雪逆轉(zhuǎn)了天地。而我在這里靜靜地等待,等待宿命之輪開啟它的輪轉(zhuǎn)。我知道你一定會再來,第三次,玄德,我會讓你,自由地…

02C語言的編程風格

C語言也是一種語言,同樣可以匹配語言的基本三要素:語音、詞匯和語法。同樣是C語言編程,不同的平臺、項目、公司、社群,編碼風格也是風格迥異,各不相同。

在Windows下編寫一個C語言函數(shù),我們通常使用下面的命名方式:

void OpenDoor(void);

而在Linux下編寫一個C語言函數(shù),我們更喜歡使用下面的命名方式:

void open_door(void);

而同樣是在Linux環(huán)境下,如果是一個GNU項目,函數(shù)的命名通常又變成了這樣:

voidopen_door (void);

不同的開發(fā)環(huán)境,不同的平臺,不同的公司,不同的項目,編程規(guī)范和代碼風格可能各不相同,我們需要遵守的原則其實也很簡單:入鄉(xiāng)隨俗。

03Linux內(nèi)核編碼風格

在Linux內(nèi)核源碼的Documentation/process/coding-style.rst文件里,詳細講述了Linux內(nèi)核編程時需要遵循的一些編程規(guī)范。

1.縮進

代碼的縮進使用tab鍵,建議是8個空格

大家在編寫代碼時,縮進要使用tab鍵,而不是直接敲4個或8個空格。tab鍵的縮進可以通過IDE的選項調(diào)節(jié),也可以在vim的vimrc配置文件中設(shè)置。使用tab鍵縮進8個空格,可以讓代碼的層次結(jié)構(gòu)更加清晰,但帶來的弊端是當程序嵌套的層次很深時,縮進會使每一行寫代碼的空間大大減少。為了預防這種情況發(fā)生,在Linux內(nèi)核源碼的switch-case語句中,case語句一般都是和switch頂格寫,不縮進。

2.空格

在Linux內(nèi)核中,使用空格的地方主要分布如下

  • 在if、switch、case、for、do、while后,和(之間要加一個空格

  • 二元運算符:+、-、|、*、=、== 等兩側(cè)一般要加空格

  • 函數(shù)名、一元運算符++、--等后面一般不用加空格

  • 小括號里表達式的兩側(cè)一般不要加空格

  • sizeof、typeof、alignof、__attribute__后面一般不要加空格

3.換行

一般在if、switch、case、for、do、while后的大括號不能單獨占一行,但函數(shù)的一對大括號可以單獨各占一行。函數(shù)的參數(shù)一行寫不下,可以換行寫,各個函數(shù)之間一般也要空一行。

在if-else分支結(jié)構(gòu)中,else分支和大括號一般不會單獨占一行,而是和if分支的}寫在同一行。

04格式化工具:indent

Linux提供了一個好用的工具:indent,可以對我們編寫的C語言代碼進行格式檢查。indent的安裝和使用都很方便:

# apt install indent# indent -linux -ce hello.c

indent默認的風格是GNU,如果你編寫的程序代碼很亂,沒有留空格,沒有換行,沒有縮進,閱讀性很差,如下所示:

我們使用上面的indent命令對這段代碼進行處理后,再次使用vim打開,你會發(fā)現(xiàn)代碼風格就變成了下面這個樣子,瞬間整潔了不少:

在 indent -linux ?-ce main.c命令中,-linux參數(shù)表示按照Linux風格來格式化代碼:空格、縮進按照內(nèi)核的規(guī)范,大括號不單獨占一行。-ce參數(shù)表示else分支不單獨占一行,如果你使用-nce參數(shù),else分支則會單獨占一行。

除此之外,indent工具還有很多可選參數(shù)供我們參考,你可以通過indent --help或man indent命令來查看這些參數(shù)的詳細使用說明。

如果你想有自己的編碼風格,你可以將這些格式化參數(shù)保存在~/.indent.pro文件中。以后你每次使用indent xx.c格式化一個C文件時,indent就會根據(jù)這個配置文件中保存的參數(shù)來格式化xx.c文件。

Linux內(nèi)核源碼中的scripts/Lindent腳本,可以對Linux內(nèi)核代碼進行格式化設(shè)置。這個Lindent腳本內(nèi)部其實也是通過調(diào)用indent命令來運行的。

05小結(jié)

以上給大家介紹了Linux內(nèi)核中的代碼風格和格式化工具indent的使用。由于篇幅關(guān)系只介紹了其中一小部分,更多的編碼規(guī)范和細節(jié)可以去閱讀內(nèi)核源碼中的Documentation/process/coding-style.rst文檔。

總結(jié)

以上是生活随笔為你收集整理的linux内核_Linux内核编程风格简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。