前言:
爲了方便查看博客,特意申請了一個公衆號,附上二維碼,有興趣的朋友可以關注,和我一起討論學習,一起享受技術,一起成長。
1. bool 變量與“零值”進行比較
定義:
#define FALSE 0
#define TURE 1
bool bTestFlag = FLASE;
推薦寫法:
if (bTestFlag) ; if (!bTestFlag)
if 語句是根據其後面括號裏的表達式的值進而進行跳轉的。如果表達式爲真,則執行 if 語句後面的代碼,否則不執行;
2. float 變量與“零值”進行比較
float 和 double 類型的數據都是有精度限制的,不能夠直接比較。可以通過定義好的 EPSINON 精度進行比較。
比如:一個浮點數與 0.0 進行比較,可如下操作:
const float EPSINON = 0.00001; // 6位精度
float fTestFlag = 0.0;
if ((fTestFlag >= -EPSINON) && (fTestFlag <= EPSINON))
{
printf("float test \r\n");
}
3. 指針變量與“零值”進行比較
定義指針的同時需要對其進行初始化。
int *p = NULL;
if (NULL == p); if (NULL != p);
4. switch & case 的應用
當條件分支少的時候,選擇使用 if & else 即可。當分支多的時候使用 switch & case 就會方便得多。
eg:矩陣鍵盤的選擇
switch(key_val)
{
case 0xee:
key = 0;
wei ++;
break;
case 0xde:
key = 1;
wei ++;
break;
case 0xbe:
key = 2;
wei ++;
break;
case 0x7e:
key = 3;
wei ++;
break;
defalut;
break;
注意:
(1)每個分支最後以 break 語句結束,switch 選擇分支最後加上 default 分支;
(2) case 後面只能是整型或字符型常量或常量表達式;
(3) case 語句的排序:按順序,正常處理在前,異常處理放在後;
(4) case 後面執行的語句儘可能短,如果過長,可單獨寫成一個函數,然後 case 再來調用此函數;