我想知道是否有方法讓編譯器明白兩個if
語句不能同時爲真,並添加一個「隱含的else」。例如該代碼示例中:隱式else編譯器優化
int main() {
char c;
scanf_s("%c", &c, 1);
if (c == '1') {
printf("received 1\n");
}
if (c == '2') {
printf("received 2\n");
}
return 0;
}
c
不能'1'
和'2'
,但在Visual Studio編譯和拆卸我注意到,它會檢查第二if
,不管是什麼之後。
檢查版本構建。 –
你期待什麼答案,除了*「這是可能的,但取決於編譯器」*? – user694733
@BaummitAugen我檢查了發佈版本。 – yeger