五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

嵌入式軟件開發(fā)的基礎知識(1)一些定義性質的東西

2022-07-03 13:42 作者:云漢含星  | 我要投稿

宏定義 (#define)

????宏就是一種替換,在編譯階段會將使用的宏所有進行相應的替換。當然宏也有條件判斷,宏函數(shù)這些的操作。這些函數(shù)運算和替換也都是完成在編譯時。

內(nèi)聯(lián)函數(shù)的作用(?inline)

????內(nèi)聯(lián)函數(shù)在編譯階段就已經(jīng)進行了替換,運行時不需要函數(shù)的調(diào)用。這非常適合某一個小的,且需要頻繁調(diào)用的模塊??赡軐τ谛∧K來說,一次調(diào)用,出棧入棧的時間開銷,已經(jīng)和函數(shù)運行耗時同一個量級了。

靜態(tài)變量的作用(static)

????靜態(tài)變量static只會在第一次調(diào)用函數(shù)的時候初始化一次。在內(nèi)存中是指定了一個地址的。下一次調(diào)用就不會重新建立一個零時的變量。
????靜態(tài)變量也可以更好的限定變量或者函數(shù)的使用范圍,在A函數(shù)內(nèi)的靜態(tài)變量,只能在A函數(shù)中使用,其他地方不能使用。靜態(tài)函數(shù)和變量禁止extern出去。這在一定程度上可以減少程序之間的耦合。

為什么找不到函數(shù)的定義

????剛入手一份代碼時,可能會遇到某些函數(shù)只有聲明和使用,但是找不到定義。說明這個函數(shù)已經(jīng)被封裝到了OBJ里面。這種函數(shù)暫時是不用管的,等需要了解這部分的代碼的時候,前輩自然會給你看這部分的代碼。

遇到?jīng)]有初始化,就直接使用的變量

????我們的硬件在啟動的時候,對RAM做一次清零(我猜測應該是要求掉電,所以被迫清零了)。所以這些變量都是可以聲明后直接拿來使用。但是這是一種非常不好的習慣。聲明的變量不管是啥,最好都要初始化一下。

善用結構體和聯(lián)合體存儲數(shù)據(jù)(struct,union)

????將某個功能的相關參數(shù),都集中起來,定義成結構體struct。然后在外面定義為聯(lián)合體union。因為聯(lián)合體的內(nèi)存是共享的,一般來說,union會定義一個all和定義一個bit。一個根據(jù)索引訪問數(shù)據(jù),一個可以根據(jù)變量名直接訪問一個bit。這個玩意是可以嵌套的。所以用一個uint16表示一個變量,和一個uint16表示16個bit(16個狀態(tài))聯(lián)合起來狀態(tài)量。都是可以的。

聯(lián)合體體尋找數(shù)據(jù)的索引(union,index)

????因為聯(lián)合體的內(nèi)存是連續(xù)的,而且可以定義每一個字節(jié),都可以有自己的變量名。所以直接用變量的地址,減去聯(lián)合體的首地址。就可以得到偏移地址,也就是索引(index)。

PS:本人是機械專業(yè)的應屆畢業(yè)生,目前從事嵌入式軟件開發(fā)(萌新一個)。所以可能對別人來說很簡單的問題,我可能從來沒有遇到過。在學校里面寫的代碼幾乎不會考慮到這部分的東西。

此文章僅記錄自己工作過程的遇到的問題

嵌入式軟件開發(fā)的基礎知識(1)一些定義性質的東西的評論 (共 條)

分享到微博請遵守國家法律
抚顺市| 永兴县| 武威市| 罗田县| 奉新县| 涿鹿县| 阜阳市| 丹寨县| 嘉义县| 清水河县| 衡水市| 通州区| 上栗县| 余庆县| 汉沽区| 永善县| 邵阳县| 乡城县| 汝阳县| 安阳市| 丹江口市| 博爱县| 娄底市| 诸城市| 永丰县| 乃东县| 新源县| 富蕴县| 江城| 宜阳县| 洛宁县| 孙吴县| 南郑县| 英吉沙县| 慈利县| 舒城县| 普格县| 四川省| 沾化县| 江城| 合肥市|