如何忽略“有符号和无符号整数表达式之间的比较”?

Posted

技术标签:

【中文标题】如何忽略“有符号和无符号整数表达式之间的比较”?【英文标题】:How to ignore 'comparison between signed and unsigned integer expressions'? 【发布时间】:2010-12-07 14:51:22 【问题描述】:

谁能告诉我我必须使用哪个标志才能使 gcc 忽略“有符号和无符号整数表达式之间的比较”警告消息。

【问题讨论】:

【参考方案1】:

gcc -Wno-sign-compare

但是无论如何,您确实应该修复它警告您的比较。

【讨论】:

但是,一些风格指南(例如 Google 的)建议不要使用无符号类型。 google-styleguide.googlecode.com/svn/trunk/… @Sancho 在处理std 容器索引/大小时会怎样? 只想说这是一个很好的答案。先回答,再传道。当它反过来时,它真的在我心中沸腾。 @AlexanderHuszagh std::string::find 返回一个std::string::size_type,巧合的是std::string::npos 的类型。将std::string::size_type 与另一个std::string::size_type 进行比较,我从来没有遇到过任何问题。 在我看来,谷歌的风格指南有很多争议点,这就是其中之一。【参考方案2】:

这对我有用,在 Code::Blocks 中使用 gcc 编译器。在编译器设置中,单击“编译器设置”选项卡,然后选择“其他编译器选项”。输入 -Wno-sign-compare 警告 -Wsign-compare 可以通过添加“-Wno”作为前缀来否定。事实上,可以通过在警告代码中添加 -Wno- 来忽略警告。

【讨论】:

以上是关于如何忽略“有符号和无符号整数表达式之间的比较”?的主要内容,如果未能解决你的问题,请参考以下文章