嵌入式C知識點總結

來源:互聯網
上載者:User

標籤:style   color   使用   strong   io   for   問題   cti   

在網上看到很多嵌入式C的知識點,總想把他們積累起來。所謂不積小流無以成江海,不積跬步無以至千裡。

1、#define SENCONDS_PER_YEAR (60*60*24*365)UL

1)宏定義文法,格式

2)直觀表達出這個數位意義(一年又多少秒)

3)這個數字會使16位機產生溢出,需要使用長整形L,同時是無符號數,所以用到UL

 

2、#define MIN(A,B) ((A)<=(B)?(A)(B))

1)三重條件操作符,會使編譯器產生比if-than-else更最佳化的代碼 注意inline也是可以產生嵌入式代碼的

2)宏中的參數需要使用括弧括起來

3)leaset = MIN(*P++,a); 這個語句會產生什麼錯誤?

++ 的操作優先順序高於*,所以會先地址++,然後取值,會得到不確定的結果。

 

3、前置處理器表示 #error的目的是什麼

1)使用範圍很廣,在預先處理階段,當處理到這裡時,會產生預先處理錯誤,並輸出自訂錯誤。

# error [使用者自訂的錯誤訊息]

比如說,如果檢測到編譯環境是C++提醒使用者,需要在C編譯環境下運行。

 

4、死迴圈(Infinite loops)

自己習慣使用 while(1){},結構看起來一目瞭然。並且可以定義一個變數=1,變數名可以寫成某種死迴圈運行條件,這樣做可以一眼看出這個迴圈目的。

當然有些人喜歡 for(;;){},並沒有任何問題。

 

5、變數定義

a) 一個整型數                           (An integer)
b) 一個指向整型數的指標        (A pointer to an integer)
c) 一個指向指標的的指標,它指向的指標是指向一個整型數                  (A pointer to a pointer to an integer)
d) 一個有10個整型數的數組                                                                    (An array of 10 integers)
e) 一個有10個指標的數組,該指標是指向一個整型數的                       (An array of 10 pointers to integers)
f) 一個指向有10個整型數數組的指標                                                      (A pointer to an array of 10 integers)
g) 一個指向函數的指標,該函數有一個整型參數並返回一個整型數                                          (A pointer to a function that takes an integer as an argument and returns an integer)
h) 一個有10個指標的數組,該指標指向一個函數,該函數有一個整型參數並返回一個整型數( An array of ten pointers to functions that take an integer argument and return an integer )

 

答案:

a) int_t a;

b) int_t *a;

c) int_t **a;

d) int_t  a[10];

e) int_t *a[10];

f) int_t (*a)[10};

g) int_t (*a)(int_t);

h) int_t(*a[10])(int_t);

6、static 作用

1)static變數和函數儲存在靜態儲存地區,在程式開始時被初始化。唯一的一次初始化。靜態變數的值是可以變化的。地址是開始時初始化的。

2)靜態變數和靜態函數只能被模組內的函數調用,模組外的無法調用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.