《嵌入式LINUX與物聯網軟件開發 C語言內核深度解析》學習0——其他記錄

printf加’\n’的好處

linux中命令行默認是行緩衝,當遇到換行符(\n)纔會輸出,否則就會緩衝起來,程序終止或者緩衝區滿了才輸出。

不同系統的換行符

windows:\r\n (CRLF)
linux:\n (LF)
iOS:\r (CR)

scanf中的坑

scanf不會接收最後的\n,\n繼續留在標準輸入中,導致下次scanf的時候拿到的是\n,而不是真正的數據,scanf的很多錯誤就是這樣來的。

使用typedef的意義

1、簡化類型,讓程序更容易理解和書寫
2、創建平臺無關類型,便於移植。
    例如程序用到最高精度的浮點類型。平臺A最高爲float,平臺B最高爲long double ,就可以這樣定義
    #ifdef PLATFORM_A
    typedef float myMax;
    #endif
    #ifdef PLATFORM_B
    typedef long double myMax;
    #endif

強制類型轉換會改變原來的變量的值嗎?

原來的變量得值不會改變。
float a = 12.34;
int b = (int)a;
上面的強制類型轉換,然後賦值,可以分爲4步:
step1:構建臨時變量x
step2:將a的整數部分賦值給x
step3:將x賦值給b
step4:銷燬x
所以不會更改原變量的值。

debug宏的使用方法

#ifdef DEBUG
#define debug(fmt,args...) printf(fmt,##args)
#else
#define debug()
#endif
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章