日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 1 常見命名規(guī)則比較著名的命名規(guī)則首推匈牙利命名法,這種命名方法是由Microsoft程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在變量和函數(shù)名中加入前綴以增進(jìn)人們對(duì)程序的理解”

 1 常見命名規(guī)則

比較著名的命名規(guī)則首推匈牙利命名法,

這種命名方法是由Microsoft程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。

其主要思想是“在變量和函數(shù)名中加入前綴以增進(jìn)人們對(duì)程序的理解”。

匈牙利命名法關(guān)鍵是:標(biāo)識(shí)符的名字以一個(gè)或者多個(gè)小寫字母開頭作為前綴;

前綴之后的是首字母大寫的一個(gè)單詞或多個(gè)單詞組合,該單詞要指明變量的用途。

例如:lpszStr, 表示指向一個(gè)以'\0'結(jié)尾的字符串(sz)的長(zhǎng)指針(lp)變量。

駱駝(Camel)命名法近年來(lái)越來(lái)越流行,

在許多新的函數(shù)庫(kù)和Java這樣的平臺(tái)下使用得當(dāng)相多。

駱駝命名法,正如它的名稱所表示的那樣,指的是混合使用大小寫字母來(lái)構(gòu)成標(biāo)識(shí)符的名字。

其中第一個(gè)單詞首字母小寫,余下的單詞首字母大寫。

例如:printEmployeePaychecks(),函數(shù)名中每一個(gè)邏輯斷點(diǎn)都有一個(gè)大寫字母來(lái)標(biāo)記。

帕斯卡(Pascal)命名法與駱駝命名法類似。

只不過(guò)駱駝命名法是第一個(gè)單詞首字母小寫,而帕斯卡命名法則是第一個(gè)單詞首字母大寫。

例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。

在C#中,以帕斯卡命名法和駱駝命名法居多。

事實(shí)上,很多程序設(shè)計(jì)者在實(shí)際命名時(shí)會(huì)將駱駝命名法和帕斯卡結(jié)合使用,

例如變量名采用駱駝命名法,而函數(shù)采用帕斯卡命名法。

另一種流行的命名規(guī)則稱為下劃線命名法。

下劃線法是隨著C語(yǔ)言的出現(xiàn)流行起來(lái)的,在UNIX/LIUNX這樣的環(huán)境,以及GNU代碼中使用非常普遍。

本章所述的命名規(guī)則主要基于下劃線命名法發(fā)展而來(lái)。

2 函數(shù)的命名

函數(shù)名使用下劃線分割小寫字母的方式命名:

設(shè)備名_操作名()

操作名一般采用:謂語(yǔ)(此時(shí)設(shè)備名作為賓語(yǔ)或者標(biāo)明操作所屬的模塊)或者

謂語(yǔ)+賓語(yǔ)/表語(yǔ)(此時(shí)設(shè)備名作為主語(yǔ)或者標(biāo)明操作所屬的模塊) 等形式,如:

tic_init()

adc_is_busy()

uart_tx_char()

中斷函數(shù)的命名直接使用 設(shè)備名_isr() 的形式命名,如:

timer2_isr()

3 變量的命名

變量的命名也采用下劃線分割小寫字母的方式命名。

命名應(yīng)當(dāng)準(zhǔn)確,不引起歧義,且長(zhǎng)度適中。如:

int length;

uint32 test_offset;

單字符的名字也是常用的,如i, j, k等,它們通??捎米骱瘮?shù)內(nèi)的局部變量。

tmp常用做臨時(shí)變量名。

局部靜態(tài)變量,應(yīng)加s_詞冠(表示static),如:

static int s_lastw;

全局變量(尤其是供外部訪問的全局變量),應(yīng)加g_詞冠(表示global),如:

void (* g_capture_hook)(void);

4 常量及宏的命名

采用下劃線分割大寫字母的方式命名,一般應(yīng)以設(shè)備名作為前綴,

防止模塊間命名的重復(fù)。如:

#define TIMER0_MODE_RELOAD 2

#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

當(dāng)然,看作接口的宏可以按照函數(shù)的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)

#define timer0_is_expired() (TF0)

5 常用縮寫詞

原詞 縮寫

addition add 加

subtraction sub 減

multiplication mul 乘法

division div 除法

answer ans 響應(yīng)、回答

array arr 數(shù)組、集合

average avg 平均

buffer buf或buff 緩沖區(qū)

capture cap或capt 捕獲

check chk 檢查

count cnt 計(jì)數(shù)器

column col 列

control ctrl 控制

decode dec 解碼、譯碼

define def 定義

delete del 刪除

destination dst或dest 目的

display disp 顯示

encode enc 編碼

environment env 環(huán)境

error err 錯(cuò)誤

float flt 浮動(dòng)、浮點(diǎn)

frequency freq 頻率

header hdr 開始、開頭

index idx 索引、指示、

image img 影像、鏡像

increment inc 增加、增量

initalize init 初始化

iteration itr 循環(huán)、迭代

length len 長(zhǎng)度

memory mem 內(nèi)存

middle mid 中值

make mk 制造、形成

message msg 消息

number num 數(shù)量、編號(hào)

operand opnd 操作數(shù)

optimization opt 最優(yōu)

operator optr 操作

packet pkt 消息包

positon pos 位置

previous pre或prev 以前的

pointer ptr 指針

record rcd 記錄

receive recv 收到、接收

result res 結(jié)果

return ret 返回

source src 源頭

stack stk 棧

string str 字符串

table tab 表

temporary tmp或temp 臨時(shí)

total tot 全部的

time stamp ts 時(shí)間戳

value val 值

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在高性能網(wǎng)絡(luò)編程領(lǐng)域,事件驅(qū)動(dòng)模型以其高效的I/O多路復(fù)用能力成為主流范式。不同于傳統(tǒng)的多線程/多進(jìn)程阻塞模型,事件驅(qū)動(dòng)通過(guò)單一線程監(jiān)聽多個(gè)文件描述符的狀態(tài)變化,以非阻塞方式處理I/O事件,顯著減少了上下文切換開銷和資源...

關(guān)鍵字: 事件驅(qū)動(dòng) C語(yǔ)言

嵌入式系統(tǒng)開發(fā)中,內(nèi)存碎片化始終是困擾程序員的難題。以某工業(yè)控制器項(xiàng)目為例,系統(tǒng)需連續(xù)運(yùn)行5年以上,期間頻繁分配/釋放不同大小的內(nèi)存塊(從16字節(jié)到4KB不等)。傳統(tǒng)malloc/free機(jī)制在運(yùn)行3年后導(dǎo)致內(nèi)存利用率驟...

關(guān)鍵字: 自定義內(nèi)存池設(shè) C語(yǔ)言

在C語(yǔ)言開發(fā)的HTTP服務(wù)器項(xiàng)目中,通信異常是常見的調(diào)試挑戰(zhàn)。Wireshark作為網(wǎng)絡(luò)協(xié)議分析領(lǐng)域的“瑞士軍刀”,通過(guò)捕獲和分析數(shù)據(jù)包,能夠精準(zhǔn)定位HTTP通信中的異常環(huán)節(jié)。本文結(jié)合實(shí)際案例,闡述如何利用Wiresha...

關(guān)鍵字: Wireshark C語(yǔ)言

在物聯(lián)網(wǎng)設(shè)備數(shù)量突破200億的今天,數(shù)據(jù)傳輸安全已成為開發(fā)者無(wú)法回避的核心命題。某智慧農(nóng)業(yè)項(xiàng)目曾因未加密通信導(dǎo)致傳感器數(shù)據(jù)被篡改,造成300畝農(nóng)田灌溉系統(tǒng)癱瘓。而通過(guò)30分鐘集成OpenSSL庫(kù),同樣的設(shè)備實(shí)現(xiàn)了TLS加...

關(guān)鍵字: OpenSSL C語(yǔ)言

當(dāng)MobileNet在STM32H7上完成單張圖像推理需要1.2秒時(shí),工程師們意識(shí)到:要讓AI真正落地嵌入式設(shè)備,必須突破浮點(diǎn)計(jì)算的桎梏。量化技術(shù)通過(guò)將32位浮點(diǎn)參數(shù)轉(zhuǎn)換為8位整數(shù),在ARM Cortex-M7處理器上實(shí)...

關(guān)鍵字: C語(yǔ)言 神經(jīng)網(wǎng)絡(luò)

在C語(yǔ)言的江湖中,內(nèi)存管理如同行走于刀尖之上——稍有不慎,便可能陷入內(nèi)存泄漏的深淵。紅黑樹作為高效的數(shù)據(jù)結(jié)構(gòu),其復(fù)雜的節(jié)點(diǎn)分配與釋放邏輯更易成為內(nèi)存泄漏的重災(zāi)區(qū)。而Valgrind,這位內(nèi)存調(diào)試領(lǐng)域的“福爾摩斯”,憑借其...

關(guān)鍵字: Valgrind C語(yǔ)言

紅黑樹作為自平衡二叉搜索樹的代表,其設(shè)計(jì)靈感源于對(duì)2-3-4樹的二叉化改造。通過(guò)將多路節(jié)點(diǎn)轉(zhuǎn)換為二叉樹結(jié)構(gòu)中的顏色標(biāo)記,紅黑樹在保持O(log n)時(shí)間復(fù)雜度的同時(shí),避免了復(fù)雜的節(jié)點(diǎn)分裂操作。本文將從2-3-4樹的平衡原...

關(guān)鍵字: 紅黑樹 C語(yǔ)言

當(dāng)某智能攝像頭廠商將服務(wù)器架構(gòu)從多線程切換為單線程事件驅(qū)動(dòng)模型后,設(shè)備在2G網(wǎng)絡(luò)環(huán)境下的并發(fā)連接數(shù)從8個(gè)躍升至1200個(gè),同時(shí)內(nèi)存占用銳減76%。這個(gè)戲劇性轉(zhuǎn)變揭示了一個(gè)被廣泛忽視的真相:在資源受限的嵌入式場(chǎng)景中,線程模...

關(guān)鍵字: 單線程 多線程 C語(yǔ)言

嵌入式開發(fā),HTTP服務(wù)器作為數(shù)據(jù)交互的核心組件,其功耗特性直接影響設(shè)備續(xù)航能力。傳統(tǒng)HTTP服務(wù)器依賴持續(xù)運(yùn)行模式,導(dǎo)致能量浪費(fèi)嚴(yán)重。本文提出一種基于C語(yǔ)言的超低功耗HTTP服務(wù)器架構(gòu),通過(guò)RTC(實(shí)時(shí)時(shí)鐘)喚醒機(jī)制實(shí)...

關(guān)鍵字: C語(yǔ)言 HTTP
關(guān)閉