我阅读了using size_t
for array indices的建议。
编写unsigned
垃圾的标准和便携式方法是什么?
为什么不是规范的方式:
size_t i;
unsigned char uchar[10U];
uchar[0U]=10U;
for(i=2U;i<uchar[0U];i++) {
uchar[i]=i;
printf("%u\n",uchar[i]);
}
最佳答案
U
中的0U
只是噪音-因为它是一个简单的常量,其类型并不重要。更糟的是,没有size_t
后缀。
实际上,您实际上很少需要后缀-即使这样,也常常使后na的编译器静音。size_t
建议适用于旨在存储未知的数组索引和索引计算的对象,或者用于数组维数计算的诸如1000 * 1000 * 1000 * 10
之类的对象-这些应在size_t
中发生,存在整数溢出或环绕的危险。
关于c - 规范的无符号后缀用作数组索引时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57874301/