- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
for ( i= 0; i < sizeof(r)/sizeof(r[0]); ++i ){
r[i]= 0;
}
这就是我遇到问题的 for 循环,我该如何重写它,这样我就不会收到警告:
comparison between signed and unsigned integer expressions [-Wsign-compare]
最佳答案
sizeof()
返回 size_t
类型的无符号整数。因此使用相同类型的索引。
size_t i;
for (i = 0; i < sizeof(r)/sizeof(r[0]); ++i) {
r[i] = 0;
}
建议不要使用int size = sizeof(r)/sizeof(r[0]);
。 size_t
的范围可能大大超过int
的正值范围。分配可能会丢失重要位。
size_t
是最适合索引数组变量的类型。但请记住,由于它是一些无符号整数,因此它不能表示负索引。
关于有符号和无符号整数表达式之间的比较 [-Wsign-compare] 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345883/
for ( i= 0; i < sizeof(r)/sizeof(r[0]); ++i ){ r[i]= 0; } 这就是我遇到问题的 for 循环,我该如何重写它,这样我就不会收到警
我最近遇到了以下问题。由于它有些棘手,我将其作为 future 人们的问答对。 根据这些问题(Unsigned hexadecimal constant in C?,C interpretation
这是我正在尝试编译的函数: static ssize_t output(t_out_buffer *buf, char const *src, size_t size) { size
当我分配一个成员变量作为大小的数组时,我看到了与我分配一个非成员变量时不同的符号转换警告行为。 如果我用 const int 类型的成员变量创建一个数组,我会得到一个 warning: convers
我最近注意到,当有问题的代码位于函数模板中时,g++ 不会发出有符号/无符号比较警告。这是一个示例: // signed_unsigned.cc #include #include templat
我有以下代码: template struct wrapper { T t; operator T() { return t; } T get() { return t; }
我有一个使用 64 位整数比较的代码。它看起来类似于以下内容: #include long long getResult() { return 123456LL; } int main()
我在使用我的 lex (flex 2.6.0) 扫描器规则时遇到问题,它看起来像: . { /* Place the char back and process statment normally
当编译代码访问结构中的常量以在 malloc 中使用时,我在使用 gcc -Wconversion sample.c 时收到 -Wsign-conversion 警告: sample.c:12:45:
这个问题在这里已经有了答案: Why is the enum incompatible with bit fields in Windows? (1 个回答) 关闭 5 年前。 请向我解释“-Wsi
我的 g++ gcc 版本 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) 似乎没有出现符号比较错误。 当我使用选项编译以下内容时,我没有收到错误 - 但当我去掉 con
这是一个 SSCCE ,显示了我的代码的简化版本,它仍然做了一些有用的事情: //Compile with -O3 -Wsign-conversion #include #include void
当我使用 g++ 编译我的 C++ 程序时 warning: comparison between signed and unsigned integer expressions [-Wsign-co
我能否将任意宽度的无符号变量中的所有位设置为 1,而不会使用相同的文字触发符号转换错误 (-Wsign-conversion)? 没有 -Wsign-conversion 我可以: #define A
#include #include #include #include using namespace std; int main() { vector vector_double;
我是一名优秀的程序员,十分优秀!