Я столкнулся с чем-то странным с
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
в моей программе.Если я использую форму
if(IsM = (hi0 == I_Q)) {}
, то компилятору не хватает скобок вокруг моего логического выражения, но в остальном код выполняется нормально.Если, чтобы избежать предупреждения, я использую форму
if((IsM = (hi0 == I_Q))) {}
, тогда предупреждения нет, но код прерывается.Если я использую
IsM = (hi0 == I_Q);
if(IsM){}
, то предупреждения нет, и код работает нормально.Я делаю что-то незаконное или я обнаружил какую-то ошибку?