У меня есть часть кода, которую я пытаюсь отлаживать, что приводит к причудливым результатам. Целое число, которое очень четко содержит значение шесть, сравнивает ложное буквальный 6.
В моем коде, этот код:Целое число, не сравнимое с его значением
int allGreen = 0;
int index = 0;
while (ch->fb[index]->selection_color() == FL_GREEN)
{
++allGreen;
++index;
}
std::cout << allGreen << std::endl;
std::cout << std::boolalpha << (allGreen == 6) << std::endl;
Производит вывод:
6
false
Я компиляция с г ++ 4.8.2 на Ubuntu.
Как это может случиться?
Редактировать: Удаление всего зеленого цвета из условия не помогает. Редактировать 2: индекс и allGreen равны, как и ожидалось. Ни один не равно 6, несмотря на оба они 6.
Можем ли мы иметь «какое-то условие», поэтому мы можем запустить этот код самостоятельно – Borgleader
Извините, некоторые условия не очень полезны, поскольку он плотно интегрирован с остальной базой кода. – Patrick
Некоторое условие: «ch-> fb [allGreen] -> selection_color() == FL_GREEN« – Patrick