這裏是我的代碼在gcc c99,其中有我的代碼中的「空值」?「無效值不被忽略,因爲它應該是」當使用gcc
int main(int argc, char **argv) {
char *s = "smth";
int r2 = ({ if (__builtin_types_compatible_p(__typeof__(s), char*)) { true; } else { false; }});
return (0);
};
更新
更糟的是,下面的代碼有相同的錯誤
int main(int argc, char **argv) {
char *s = "smth";
int r2 = ({if (1) {1;} else {0;}});
return (0);
};
1)這是多麼糟糕的原因。 2)你認爲選擇聲明應該返回什麼? - 無論如何,這不符合標準3)爲什麼不堅持標準並使用條件表達式 - 或者4)您根本不需要條件構造。 – Olaf