我怎样才能编辑这一行不再是一个警告
How can i edit this line to don't be a warning aymore
以下行给我一个警告:
for (int i = 0; i < SpamBannListArray.size(); i++)
char.cpp: In member function 'bool CHARACTER::SpamListCheck(const char*)':
char.cpp:7280: warning: comparison between signed and unsigned integer expressions
我需要更改什么才能消除上述警告?
您应该在 for()
循环 header 中为 i
的声明使用 unsigned
类型,因为 SpamBannListArray.size()
很可能 returns unsigned
类型:
for (unsigned int i = 0; i < SpamBannListArray.size(); i++)
// ^^^^^^^^
或
for (size_t i = 0; i < SpamBannListArray.size(); i++)
否则您的代码可能会在遇到负值时 signed
值溢出/回绕。
正如在使用基于范围的 for()
循环的注释中所指出的,当前的 c++ 标准应该首选无需指定索引变量:
for (auto item : SpamBannListArray) {
// Do something with item
}
如果您需要就地操作项目,请使用 auto &
。
以下行给我一个警告:
for (int i = 0; i < SpamBannListArray.size(); i++)
char.cpp: In member function 'bool CHARACTER::SpamListCheck(const char*)': char.cpp:7280: warning: comparison between signed and unsigned integer expressions
我需要更改什么才能消除上述警告?
您应该在 for()
循环 header 中为 i
的声明使用 unsigned
类型,因为 SpamBannListArray.size()
很可能 returns unsigned
类型:
for (unsigned int i = 0; i < SpamBannListArray.size(); i++)
// ^^^^^^^^
或
for (size_t i = 0; i < SpamBannListArray.size(); i++)
否则您的代码可能会在遇到负值时 signed
值溢出/回绕。
正如在使用基于范围的 for()
循环的注释中所指出的,当前的 c++ 标准应该首选无需指定索引变量:
for (auto item : SpamBannListArray) {
// Do something with item
}
如果您需要就地操作项目,请使用 auto &
。