嵌入式C語言常用關鍵字 學習筆記2

2021-10-03 09:40:41 字數 1903 閱讀 7413

1、關鍵字概念及sizeof, return

編譯器預先定義了一定意義的字串

sizeof是關鍵字

2、資料型別 (掌握大小範圍

1、char

​ 硬體晶元操作的最小單位:bit

​ 軟體操作的最小單位:8bit==1b (乙個位元組)

​ char 描述的是硬體能夠操作的在軟體上體現的最小單位

應用場景:

2、int \long\short

整型常量

進製表示

特殊長度的限制符

3、unsigned signed 無符號有符號

補充: 計算機儲存資料機制:正數儲存的二進位制原碼,負數儲存的是二進位制的補碼。 補碼是負數的絕對值反碼加1。

4、float 、double

浮點型常量

5、void (語義意義

void a :佔位標誌,宣告標誌,而不是使用標識

3、自定義資料型別

c編譯器預設的記憶體分配不符合實際資源的形式

自定義=

1、struct 元素之間的和

語法:

struct myabc

;struct myabc mybuf;

結構體中的順序是有要求的

2、union 共用體 共用起始位址的一段內容

應用:技巧性的**

語法:

union myabc

;struct myabc abc;

3、enum 一一枚舉 被命名的整型常數的集合

地位:地位很低

語法:enum 列舉名稱;

#define mon 0

#define tue 1

#define wed 2

enum

;//相當於上面的巨集定義 預設從0開始累加

應用場景:可以把不同晶元的功能打包

4、typedef 只是資料型別的別名

將原有的資料型別取個外號,更易閱讀 ***_t

語法:​ int a; a是乙個int 型別的變數

​ typedef int a_t; a是乙個int型別的外號

​ a_t myheight;

應用場景:和指標一起用比較多

4、邏輯結構 分支/迴圈

c語言提供的程式執行方式

cpu順序執行程式

1、if、else 條件

2、switch、case、default 多分支

switch(整型數字) 不能跟浮點數

3、do while/for

區別:

4、continue、break、goto 迴圈中的控制符

goto: 在函式內部進行跳轉很好用

5、型別修飾符

對記憶體資源存放位置的限定;資料型別是對大小的限定

資源屬性中位置的限定,應用:希望一些程式不可修改,底層驅動中會大量使用

1、auto

預設情況 ----->分配的記憶體都是可讀可寫的區域,區域如果在{}中—>棧空間

2、register

int a;

register int a; //限制變數定義在暫存器上的修飾符

3、static

靜態應用場景:

函式外部的變數(全域性變數

函式的修飾符

4、extern 外部宣告

應用場景:全域性變數函式中使用

5、const 常量的定義

唯讀的變數

記憶體洩漏:

6、volatile 告知編譯器編譯方法的關鍵字,不優化編譯

驅動開發的底層用的很多

修飾變數的值的修改,不僅僅可以通過軟體,也可以通過其他方式(硬體外部的使用者)

關鍵字 嵌入式

const在指標中的用法 const int a 指向常整型的指標 int const a 指向常整型的指標 同上 int const a 指向整型的常指標 指標不可以改變,但是指標指向的物件的值可以改變 const int a 指向常整型數的指標 指標可以改變,但是指向的值是不可以改變的 cons...

嵌入式C語言入門 關鍵字 巨集

關鍵字extern const typedef define aad x,y x y define max x,y x y x y void test int main undef sum printf 在 d 行 n line printf 編譯的時間 s s n date time printf...

嵌入式C語言面試常問關鍵字

修飾變數 變數分為區域性變數和全域性變數,都儲存在靜態區,而普通變數儲存在棧區。靜態全域性變數作用域僅僅侷限於變數被定義的檔案中,其他檔案不能使用 靜態區域性變數只能在函式中使用,同乙個檔案中其他函式沒法使用,它儲存在靜態區,即使函式結束,這個靜態區域性變數的值不會被銷毀,直到程式結束才會銷毀,函式...