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