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 位。
以前知道的東西,很久沒用,都忘了。
留言列表