最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

STM32F103學習筆記 day17

2023-02-28 11:26 作者:崔崔TV  | 我要投稿

要復習一下C語言基礎(chǔ)知識

1、stdint.h

是從C99中引進的一個標準C庫的文件

地址:D:\MDK5.34\ARM\ARMCC\include

里面定義了一些數(shù)據(jù)類型,主要的作用就是后續(xù)編寫程序的時候不需要再挨個去確定數(shù)據(jù)類型了。數(shù)據(jù)類型的表達方式變得非常固定。

C99是什么???

C99?(以前稱為C9X?)是ISO / IEC 9899:1999的非正式名稱,在1999年推出,被ANSI于2000年3月采用。它是C編程語言標準的過去版本。 它擴展了以前的版本( C90 ),增加了語言和標準庫的新功能,并幫助實現(xiàn)更好地利用可用的計算機硬件,如IEEE 754-1985浮點運算和編譯器技術(shù),最主要的增強在數(shù)值處理上。 2011年發(fā)布的C編程語言標準的C11版本取代了C99。

打開我自己的,發(fā)現(xiàn)長這個樣子,可能以后編程序的時候需要對照著打開看一下,能省不少事。


2、位操作

按位取反是個單目運算符,出現(xiàn)在要取反的對象的左側(cè)

左移,如果有的位“移出去了”,則丟掉,空缺的位用0代替

右移,如果有的位“移出去了”,則判斷是有符號數(shù)還是無符號數(shù),無符號數(shù)直接補零,如果是有符號數(shù):看符號位是0還是1,0是正數(shù),空缺位補0,1是負數(shù),空缺位補1。


如何給寄存器的某個位賦值:位操作,比如這個:

注意,最低位是位0,不是位1

方法1:按位與或者按位或(但是這個的可讀性比較差,而且比較麻煩)

方法2:

1左移6位,變到位6,然后前面有個取反,就相當于和那個0xFFFFFFBF一個效果了

這個句子大概就是這樣:

temp=temp&{~(1<<6)}


3、宏定義

可以提高效率,可讀性,易改性,核心是替換

宏定義的名字,要大寫。本質(zhì)就是用這個宏定義的名字,來替換“常數(shù)、表達式、格式串”


舉個例子:

建議用do{...}while(0)來構(gòu)造宏定義,這樣不會受到大括號、分號、運算符優(yōu)先級等的影響,總是會按你期望的方式調(diào)用運行。

我他媽都不知道啥是構(gòu)造語句

這就是構(gòu)造語句,還是很好理解的,注意,用這個結(jié)構(gòu)的時候一定要用大括號



4、條件編譯

讓編譯器只對滿足條件的代碼進行編譯,不滿足條件的不參與編譯

ifdef跟宏名,ifndef也是

大概格式:

如果沒定義ledh,就執(zhí)行下面的語句,如果定義了,就不執(zhí)行

這個的主要作用是,可以省略不少頭文件被引用的時間,加快程序運行速度,減少編譯時間

if后面跟一個宏的意思就是:如果宏是個變量,檢測其值,若為1,執(zhí)行后續(xù)代碼,若為0,不執(zhí)行。


5、extern聲明

放在函數(shù)/變量前面,表示這個函數(shù)/變量再其他文件定義,以便文件引用。


6、類型別名(typedef)

為現(xiàn)有數(shù)據(jù)類型創(chuàng)建一個新的名字,或稱為類型別名,用來簡化變量的定義

這是形式和例子


7、結(jié)構(gòu)體

又若干數(shù)據(jù)類型集合組成的一種自定義數(shù)據(jù)類型,也叫聚合類型

在ST的里面,主要的應用格式長這樣:


8、指針

指針就是內(nèi)存的地址,指針變量是保存了指針的變量,是個變量。這是兩個東西

*+指針變量名?? 是取變量的值

&+指針變量名 是取變量的地址

第一種常見問題:

并沒有給他分配內(nèi)存,就是少了一步uint_8 buf[5]={1,3,5,7,9};這種東西


第二種常見問題:

越界使用

只有五個地址,你去用第六個,就是越界了


今天就學到這里!



STM32F103學習筆記 day17的評論 (共 條)

分享到微博請遵守國家法律
亳州市| 大兴区| 南城县| 灵璧县| 桑植县| 建德市| 中西区| 广安市| 客服| 开封县| 灌阳县| 孝昌县| 县级市| 临邑县| 济阳县| 章丘市| 永善县| 尉犁县| 盖州市| 亚东县| 泰和县| 苗栗县| 镇远县| 乌拉特中旗| 芜湖县| 天峨县| 德州市| 遵义市| 凌海市| 威海市| 云阳县| 马鞍山市| 清苑县| 双峰县| 佳木斯市| 宽甸| 宣威市| 双城市| 山东省| 祁连县| 河西区|