close

C語言除錯筆記

1. #include <*.h>: 放在預設路徑 INCLUDE 資料夾底下的 header file。
    #include "*.h": 放在工作目錄下的 header file。

 

2. register int a: 常需要用到的變數,可以直接放在 CPU 的 register 中,以加快運算速度,省去 CPU 還需要從 memory 中搬移出來的時間。 
    register 所定義的變數不能做 global variable 使用,因為只是一個暫存器,不能永久存放。

 

3. extern 是指使用在別的地方宣告的變數,所以 compiler 不會再給 memory 空間存放這個變數。

 

4. long x, y;
    x = 12*34*56*78;
    y = (long)12*34*56*78;
    x is incorrect, y is correct.
    雖然 x, y 都宣告成 long,但 12 本身是用 short 暫存器來計算,所以計算完之後,會 overflow。而 (long)12 強制轉成 long 暫存器來計算,所以不會 overflow。

 

5. 在 struct 中的變數,不可給定初值。

 

6. a = high << 8 + low; 因為 + 的優先序比 << 高,所以運算時會變成 a = high << (8 + low)。

 

7. 使用 disable interrupt 的功能,確保某段必須要一次做完的程式碼,能不被 Interrupt 。

 

8. float 精準度 4位, double 精準度 8 位。

 

以前知道的東西,很久沒用,都忘了。

 

arrow
arrow
    全站熱搜

    vanilla 發表在 痞客邦 留言(0) 人氣()