[英]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.