STM32中包含的c語(yǔ)言基礎(chǔ)知識(shí)(2023/7/19)

關(guān)鍵字為c語(yǔ)言中的應(yīng)用,表示的范圍根據(jù)使用的范圍不同,也發(fā)生了相應(yīng)的變化,比如char本來(lái)是用來(lái)表示字符的,現(xiàn)在也可以用來(lái)表述數(shù)字;int在c中是16位的,在32中表示32位,long和int的長(zhǎng)度相同,longlong基本不使用。
stdint關(guān)鍵字的庫(kù)文件給我們提供的,ST文件是以前的庫(kù)文件用的命名方式,現(xiàn)在同樣兼容

define表示宏定義,在程序的一開(kāi)始就定義,方便后期的數(shù)字更改

typedef和宏定義一樣,將長(zhǎng)的變量換名字。
兩者的區(qū)別:1.define定義的新內(nèi)容在左邊,typedef定義的新內(nèi)容在右邊;
2.define定義完之后不需要加‘;’,而typedef需要加‘;’;
3.可以define定義的范圍更加廣一點(diǎn),typedef只能定義變量類(lèi)型,非常局限

結(jié)構(gòu)體和數(shù)組的區(qū)別
1.結(jié)構(gòu)體打包不一樣的數(shù)據(jù)類(lèi)型的變量;數(shù)組只能打包同一類(lèi)型的變量
例:
數(shù)組int b [5]表示定義了一個(gè)數(shù)組,其中包含五個(gè)整數(shù)型變量
結(jié)構(gòu)體struct{char x; int y; float z;}c;表示定義了一個(gè)名為c的結(jié)構(gòu)體,其中包含char類(lèi)型的x變量,int類(lèi)型的y變量和float類(lèi)型的z變量
2.引用方式不同
數(shù)組引用b[0],、b[1]......
結(jié)構(gòu)體引用c.x、c.y......
ps:結(jié)構(gòu)體聯(lián)合typedef使用
例:typedef struct{
char x;
int y;
float z;
}StructName_t;//定義StructName_t為結(jié)構(gòu)體的新名字,方便后期的調(diào)用
StructName_t c;
StructName_t d;//快速定義結(jié)構(gòu)體變量c,d,其中StructName_t為結(jié)構(gòu)體的類(lèi)型,c,d為結(jié)構(gòu)體的名字
兩種引用結(jié)構(gòu)體的方法:
c.x='A';
c.y=66;
c.z=1.23//可以通過(guò)變量名.結(jié)構(gòu)體成員數(shù)據(jù)來(lái)引用結(jié)構(gòu)體
pc.x->x='A';
pc->y=66;
pc->z=1.23;//可以通過(guò)結(jié)構(gòu)體指針名->結(jié)構(gòu)體成員名來(lái)引用結(jié)構(gòu)體成員

enum可以給定數(shù)值的范圍,例:
enmun={MONDAY=1,TUESDAY=2,WEDNESDAY=3} week;//定義了枚舉只能有1~3三個(gè)數(shù)字的范圍
enum可以和typedef一起使用:
typedef enum{
MONDAY=1,
TUESDAY=2,
WEDNESDAY=3
} Week_t;//其中要注意,兩個(gè)變量之間用,隔開(kāi);當(dāng)表述的是按順序排列的數(shù)字時(shí),后面的數(shù)字可以被省略,如下所示
typedef enum{
MONDAY=1,
TUESDAY,
WEDNESDAY
} Week_t;
調(diào)用:Week_t=week;
week=MONDAY;//week=1;
week=TUESDAY;//week=2;
posted on 2023-07-19 21:10 蔣果是果 閱讀(268) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)