0
が、私はこのメッセージに係る助けを必要とする:C++のコンパイルエラー(符号付きおよび符号なし整数式との比較)
char_cards.cpp: '無効CHARACTER :: Cards_pullout()' メンバ関数で: char_cards.cpp :88:警告:符号付きと符号なしの比較 整数式
このエラーの意味を説明できますか?私は問題がDWORDであると思うが、何が間違っているのか分からない。
これは関数である:-1
に符号なし整数を初期化
DWORD CHARACTER::GetEmptySpaceInHand()
{
for (int i=0; i<MAX_CARDS_IN_HAND; ++i)
{
if (character_cards.cards_in_hand[i].type == 0)
return i;
}
return -1;
}
void CHARACTER::Cards_pullout()
{
DWORD empty_space = GetEmptySpaceInHand();
if (empty_space == -1) // Here is the error.
{
#ifdef __MULTI_LANGUAGE_SYSTEM__
ChatPacket(CHAT_TYPE_INFO, LC_TEXT(GET_LANGUAGE(this), "You don't have space in hands."));
#else
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You don't have space in hands."));
#endif
return;
}
RandomizeCards();
SendUpdatedInformations();
}
警告のどの部分を理解していませんか? –
行88が 'if'文と比較式を持つ行であると仮定すると、' DWODRD'は* unsigned *型であることに注意してください。 unsigned型とsinged型の比較はうまくいきません(符号なし型は決して負の値を持つことができないため)。 –
だから私は(空白スペース== 0)かどうかを確認しますか? –