簡體   English   中英

關系運算符評估結果

[英]Relational operators evaluation result

假設我們有一個表達式

(x > 5) 

用C語言。 語言/標准是否有任何保證,當表達式為false時,表達式將被評估為0當表達式為真時,表達式將被評估為1

是的,它符合標准。

根據C11標准文件,第6.5.8章,第6段,[關系運算符]

如果指定的關系為true ,則每個運算符< (小於), > (大於), <= (小於或等於)和>= (大於或等於)將產生1如果是,則為0 false 結果是int類型。

更新: C99標准的相同章節和段落也是如此。

在gcc中,它將被評估為1和0。 考慮以下程序

    #include <stdio.h>

int main(void)
{
    int a = 3;
    int b = 4;
    if((a > b) == 0)
        printf("a > b is false\n");
    if((a < b) == 1)
        printf("a < b is true\n");
    return 0;
}

它給出了輸出

a > b is false
a < b is true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM