Когда я запускаю приведенную ниже программу на С++ в 32-битном ядре powerpc, которое поддерживает плавающую эмуляцию программного обеспечения (аппаратная с плавающей запятой отключена), я получаю неправильную условную оценку. Может ли кто-нибудь сказать мне, какая здесь проблема?
#include <stdio.h>
int main() {
int newmax = 1;
if ((newmax + 0.0) > 256) {
printf("\nShouldn't be here\n");
} else {
printf("\nShould be here\n");
}
}
Compile:
powerpc-linux-g++ -msoft-float -c floating.cxx
powerpc-linux-g++ -o floating floating.o
Вывод в целевой системе:
[linux:/]$ ./floating
Shouldn't be here