精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

代碼編程規范之命名規范

汽車電子技術 ? 來源:大橙子瘋嵌入式 ? 作者: 大橙子瘋 ? 2023-02-15 14:57 ? 次閱讀

前言

這篇重點介紹一下代碼編程的命名規范,主要是業界流行的命名法則和標識符命名規范

標識符的命名規則歷來是一個敏感話題,典型的命名風格如unix風格、windows風格等,從來無法達成共識。實際上,各種風格都有其優勢也有其劣勢,而且往往和個人的審美觀有關。對標識符定義主要是為了讓團隊的代碼看起來盡可能統一,有利于代碼的后續閱讀和修改。

命名完全體現了程序的可閱讀性和可理解性,在一定程度上是不需要寫注釋也能看懂代碼。

命名法則介紹

目前,業界共有四種命名法則:駝峰命名法、匈牙利命名法、帕斯卡命名法和下劃線命名法,其中前三種是較為流行的命名法。

1printEmployeePaychecks// 駝峰命名法                                 
2
3print_employee_paychecks//下劃線命名法
4
5PrintEmployeePaychecks// 帕斯卡命名法

其中,駝峰命名法和帕斯卡命名法類似,但是區別在第一個字母是否大小寫,因此駝峰命名法一般稱小駝峰命名法,帕斯卡命名法稱大駝峰命名法。


駝峰命名法

正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變量和函數的名字(這樣的變量名看上去就像駱駝峰一樣此起彼伏,故得名),又叫小駝峰命名法。

當變量名或函數名是由一個或多個單詞連結在一起,而構成的唯一識別字時,第一個單詞以小寫字母開始;從第二個單詞開始以后的每個單詞的首字母都采用大寫字母。

1printEmployeePaychecks

匈牙利命名法

通過在變量名前面加上相應的小寫字母的符號標識作為前綴,標識出變量的作用域、類型等。這些符號可以多個同時使用,順序是先m_(成員變量)、再指針、再簡單數據類型、再其它。這樣做的好處在于能增加程序的可讀性,便于對程序的理解和維護

匈牙利命名法的規則是:作用域(屬性)+類型+描述。

如:定義一個全局變量,指向類型為int的最小值指針,變量命名為

int g_pMinValue = NULL;

以下是我根據匈牙利命名法總結的的寫法對應表

分類 前綴 描述
作用域(屬性) 局部變量
m_ 類成員變量(C++
ms_ 類的靜態成員變量(C++)
s_ 靜態變量
g_ 全局變量
sg_ 靜態全局變量
c 常量
類型 b bool 變量,不過我一般是用 is,如定義一個數據接收完成標志,則 bool isRecvEnd;
sz 以 '\\0' 結束的字符串
str string 類型字符串(C++)
p 指針變量
uc 無符號單字節整數型(unsigned char)
us 無符號雙字節整數型(unsigned short)
ui 無符號四字節整數型(unsigned int)
c 有符號單字節整數型(signed char)
s 有符號雙字節整數型(signed short)
i 有符號四字節整數型(signed int)
arr 數組
l 長整型
f 浮點型變量
pfn 函數指針
t 結構體變量
e 枚舉變量
類型前綴可以組合使用,例如"arrc"表示字符數組,"psz"表示指向以'\\0'結束的字符串的指針等等

有看過我代碼的朋友可能就會有疑問了,為什么我寫的代碼中關于變量的定義,特別是整數型的變量沒有加前綴uc us ui c s i l ,而其它類型變量都會加上前綴,原因如下:

  1. 雖然這個一看名字就知道這個變量的類型定義和取值范圍,但是通常情況下變量定義后在后面的維護中可能為了增大或減少取值范圍,會改變類型的定義,但又不同時重命名變量,導致后來再看就會有異議
  2. 目前的大部分編程軟件將鼠標放置在變量上,通常就會提示該變量的類型定義,所以也不需要特意按照這個命名
  3. 大部分只有整數型的變量定義后才會因為取值范圍受限而改變類型定義,而其他類型的定義之后基本不會隨意變動

帕斯卡命名法

是指混合使用大小寫字母來構成變量和函數的名字,每個單詞的第一個字母都大寫,又叫大駝峰式命名法;

1PrintEmployeePaychecks

下劃線命名法

使用下劃線( )連接組成的標識符,即 單詞(字母或數字) 單詞(字母或數字)_單詞(字母或數字)

1print_employee_paychecks(); // 函數
2int min_value = 0;   // 變量

標識符命名規范

根據不同場景使用不同命名規則,甚至組合使用,業內比較常用的方式。

文件名

駝峰命名法,有時也使用下劃線命名法,根據不同情況使用,盡量和之前的保持一致

因為不同系統對文件名大小寫處理會有所不同(如Windows系統不區分大小寫,但是Linux系統則區分)


變量名

匈牙利命名法 + (小)駝峰命名法兩種結合使用

具體規則是:屬性+類型+描述( 駝峰命名法)

  1. 使用名詞或者形容詞 + 名詞方式命名變量(描述),如char szFile[20] = "file";int fileSize = 0;
  2. 禁止使用單字節命名變量,但允許定義 ijk 等作為局部循環變量

宏定義/枚舉

大寫 + 下劃線命名法

  1. 對于數值或者字符串等等常量或者枚舉的定義,全部采用全大寫字母,單詞之間加下劃線“_”的方式命名。如 #define MIN_VALUE 5
  2. 除了頭文件或編譯開關等特殊標識符定義,宏定義不能使用下劃線“_”開頭和結尾(一般來說,下劃線開頭或結尾的宏都是一些內部的定義)

函數名

帕斯卡命名法(大駝峰命名法),對于對外提供的接口函數,則加模塊前綴

  1. 以函數要執行的動作命名,一般采用動詞或者動詞+名詞的結構,且符合帕斯卡命名法
  2. 對于對外提供的接口函數,一般加上模塊前綴LED_,如LED_CtrlOff(…)

通用規則

除了上述規則外,關于以上標識符的命名還應該符合以下規則:

1、標識符的命名要清晰、明了,有明確的含義,同時使用完整的單詞或大家基本可以認同和理解的縮寫,避免讓人產生誤解

如:良好的命名:int error_number; 不好的命名:int n, nerr;

2、標識符的長度應當符合“min-length && max-information”原則

如:幾十年前老ANSI C規定名字不準超過6個字符,現今的C++/C不再有此限制。一般來說,長名字能更好地表達含義,所以函數名、變量名、類名長達十幾個字符不足為怪。那么名字是否越長越好?不一定,例如變量名maxval就比maxValueUntilOverflow好用

3、除了常見的通用縮寫外,不使用單詞縮寫,不得使用漢語拼音

較短的單詞可以通過去掉“元音”形成縮寫,較長的單詞可取單詞的頭幾個字母形成縮寫,一些單詞有大家公認的縮寫,常用單詞縮寫必須統一。協議中的單詞縮寫與協議保持一致,對于某個系統使用的專用縮寫應該在注釋或者某處做統一說明

4、用正確的反義詞組命名具有互斥意義的變量或相反動作的函數等

如:add/removebegin/endcreat/destroy

5、盡量避免名字中出現數字編號,除非邏輯上的確需要編號

6、重構/修改部分代碼時,應保持和原有代碼風格保持一致

根據源代碼現有的風格繼續編寫代碼,有利于保持總體一致

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    3

    文章

    3524

    瀏覽量

    88422
  • UNIX
    +關注

    關注

    0

    文章

    296

    瀏覽量

    41416
  • 標識符
    +關注

    關注

    0

    文章

    12

    瀏覽量

    7337
收藏 人收藏

    評論

    相關推薦

    焊盤命名規范

    焊盤命名規范 通常我們的焊盤分為通過孔(THP)焊盤和表貼(SMD)焊盤兩種形式。但這兩種形式當中,又有多種形狀。所以我們要有一個統一的命名規范,以方便以后調用。一、THP焊盤
    發表于 12-31 17:27

    關于Android命名規范

    第一家公司是如此的重要,如果開發流程規范,對你之后的影響不是一般的大!而我經歷的公司大都不成體系,我的習慣就是我的規范!哈哈!很多的技術人員,恐怕都認為除了自己的作品外,別人寫的代碼都是“垃圾
    發表于 10-15 00:11

    關于Android命名規范

    第一家公司是如此的重要,如果開發流程規范,對你之后的影響不是一般的大!而我經歷的公司大都不成體系,我的習慣就是我的規范!哈哈!很多的技術人員,恐怕都認為除了自己的作品外,別人寫的代碼都是“垃圾
    發表于 06-21 09:35

    FPGA的代碼書寫規范

    代碼書寫規范本文節選自特權同學的圖書《FPGA設計實戰演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 雖然沒有“國際標準”級別的Verilog或
    發表于 04-16 04:08

    C語言編程的基本規范有哪些?

    為了提高源程序的質量和可維護性,從而最終提高軟件產品生產力,特編寫此規范。本標準規定了程序設計人員進行程序設計時必須遵循的規范。本規范主要針對單片機編程語言和08編譯器而言,包括排版、
    發表于 02-24 07:22

    單片機程序設計編程規范分享

    嚴格,品質要求高的軟件公司對員工編寫代碼的風格都有硬性規定,例如縮排的使用,TAB 的長度,函數變量的命名方式. 這些規定的明顯好處是可以統一規范不同程序員所編制的代碼,提升程序
    發表于 09-25 08:06

    C#編程代碼規范

    C#編程代碼規范 注:目的:為了保證開發隊伍中的所有程序員都能夠理解其他人編寫的代碼。 參考: 《華為編碼規范和范
    發表于 02-09 16:11 ?81次下載

    PCB封裝命名規范

    介紹PCB封裝的命名規范,讓封裝庫有規律,易查詢。
    發表于 10-29 14:07 ?0次下載

    嵌入式代碼編寫規范

    嵌入式代碼編碼規范,用于規范自己的代碼,增強可讀性,非標準規范。最好能強制自己形成良好的編碼風格,有利于開發
    的頭像 發表于 04-26 15:21 ?5243次閱讀

    關于軟件、硬件版本號命名的常見規范

    不知道大家寫程序、畫板子時,版本號是怎么命名的? ? 最常見的就是V1.0.0這種簡單的形式命名,復雜一點就是帶有日期、后綴等版本信息。 ? 當然,版本號命名規范就像
    的頭像 發表于 12-31 10:04 ?4730次閱讀

    史上最全的PCB封裝命名規范

    適用于主流EDA工具的封裝命名規范規范命名可以提高審核效率,較少工程師犯錯。
    發表于 10-21 16:06 ?0次下載

    科普一下Verilog代碼命名規范

    命名規范包括模塊命名規范代碼命名規范
    的頭像 發表于 11-17 09:54 ?3770次閱讀

    代碼編程規范注釋風格

    注釋的原則是有助于對程序的閱讀理解以及提供二次開發所需文檔,注釋的方式有很多,但是業內常用的規范是 Doxygen 代碼注釋規范。遵循原則為,說明性文件、函數接口必須充分注釋說明。全局變量需要說明功能及取值范圍,需要自行處理資料
    的頭像 發表于 02-15 15:01 ?1795次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>編程</b><b class='flag-5'>規范</b><b class='flag-5'>之</b>注釋風格

    代碼命名規范是真優雅呀!代碼如詩

    Java項目的代碼結構,能夠體現它的設計理念。Java采用長命名的方式來規范類的命名,能夠自己表達它的主要意圖。配合高級的IDE,可以減少編碼人員的記憶負擔,靠模糊的匹配就能找到自己所
    的頭像 發表于 03-13 09:32 ?794次閱讀

    FPGA的Verilog代碼編寫規范

      注:以R起頭的是對編寫Verilog代碼的IP設計者所做的強制性規定,以G起頭的條款是建議采用的規范。每個設計者遵守本規范可鍛煉命名規范
    的頭像 發表于 08-15 16:23 ?2075次閱讀