C 語言的三目運算符以及應用

1 定義

     三目運算符由條件和表達式組成:

條件?表達式1:表達式2

    等同於:

if 條件:
    表達式1:
else:
    表達式2

    注意:

  1. 條件運算符的優先級低於關係運算符和算術運算符,但是高於賦值符,(ex:max=(a>b)?a:b可以去掉括號而寫爲 max=a>b?a:b);
  2. ?和:成對使用;
  3. 條件運算符結合方向從右至左。(ex:a>b?a:c>d?c:d應理解爲a>b?a:(c>d?c:d))

2 應用

     通常用於宏定義,在做圖像矩陣運算時求最大值,最小值,以及數據截斷。

/*求兩者最大值*/
#define MAX(a, b)                        ((a) > (b) ? (a) : (b))  
/*求兩者最小值*/
#define MIN(a, b)                        ((a) < (b) ? (a) : (b))
/* 數值範圍保護 */
#define CLIP(a, l, h)                    (MIN_V(MAX_V(a, l), h))

3 優點

  1. 代碼簡介;
  2. 運算效率高。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章