2014-09-27 2 views
-7

Я знаю, что я новичок здесь, и я ничего не внес в сообщество. Вино с вопросом, как первый. Я новичок в C++.C++: Сравнение между целыми выражениями с подписью и без знака

У меня есть проблема при компиляции источника ... это именно то сообщение об ошибке:

In static member function 'static BYTE CBeltInventoryHelper::GetBeltGradeByRefineLevel(int)': 

ВОТ COMPLET file.cpp

Я положил его на Pastebin, потому что я вижу некоторые вещи как код

http://pastebin.com/UAAbm4yU

+0

Литерал 'unsigned int' выглядит как' 1u'. –

+2

Чтобы помочь сообществу, задайте четкий и понятный вопрос :) Большая часть кода, который вы опубликовали, не имеет отношения к проблеме. –

ответ

0

похоже ПРЕДУПРЕЖДЕНИЕ здесь

if (level >= _countof(beltGradeByLevelTable)) 

Вы можете сделать уровень

(unsigned int legel) 

или сделать

if (static_cast<unsigned int>(level) >= _countof(beltGradeByLevelTable)) 

или игнорировать или отключить предупреждение.

+1

Это относится к проблеме, о которой предупреждает предупреждение: если «уровень» отрицательный, тест должен завершиться неудачно. Лучше было бы перевести '_countof' в' int'. –

+0

Спасибо user3344003, его работала. –

Смежные вопросы