prefsdialogimpl.cpp:61:18:警告:有符号和无符号整数表达式之间的比较[-Wsign-compare]

时间:2014-10-20 19:01:12

标签: c++ kde

使用内核3.16-2-amd64和KDE 4.14.1进行Debian测试。没有交叉编译。使用cmake。

尝试复苏旧的KDE应用程序但是:

[ 80%] Building CXX object CMakeFiles/knet.dir/prefsdialogimpl.o
/usr/local/src/knet/prefsdialogimpl.cpp: In member function ‘void PrefsDialogImpl::setDeviceChoices(QVector<QString>)’:
/usr/local/src/knet/prefsdialogimpl.cpp:61:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for( uint i=0; i<choices.count(); i++ )

相关功能如下:

void PrefsDialogImpl::setDeviceChoices( QVector< QString > choices )
{
    for( uint i=0; i<choices.count(); i++ )
        diagram_deviceComboBox->insertItem((choices[i]), i );
}

整个文件prefsdialogimpl.cpp就在这里:https://pastee.org/fhb3u

我没有找到无符号整数的位置,也不知道如何修复它。我是c ++的新手,但我正在学习。

1 个答案:

答案 0 :(得分:1)

如果您查找the documentation for QVector::count(),则可以看到count返回有符号整数值。将此值与您的iuint进行比较时,会出现符号不匹配。

您可以通过将i的定义更改为int i来解决此差异。

相关问题