24得票3回答
两个size_t对象相减是否安全?

我正在为我的团队调查使用size_t与int(或者long,等等)的标准。目前最大的缺点是如果对两个size_t对象进行差异操作,可能会引起问题(具体问题不确定--也许某些内容没有2的补码并且带符号/无符号可能会使编译器出现错误)。我在使用V120 VS2013编译器编写了一个快速的C++程序...

17得票3回答
将int类型转换为size_t类型

在C99标准下,在32位和64位Linux平台上,将int转换/强制转换为size_t的正确方式是什么? 示例:int hash(void * key) { //... } int main (int argc, char * argv[]) { size_t size =...

60得票4回答
为什么数组的最大大小会“太大”?

我和这个答案持有相同的看法,即标准始终保证size_t足够大,可以容纳给定系统中最大的类型。 然而,在gcc/Mingw上,这段代码无法编译:#include <stdint.h> #include <stddef.h> typedef uint8_t array_...

33得票6回答
size_t是表示大小的类型吗?

“size_t”是否代表编译代码的机器的字长?我使用g++解析时,编译器将“size_t”视为“long unsigned int”。是编译器内部选择了“size_t”的大小,还是“size_t”在调用编译器之前已经在“stddef.h”中进行了预处理宏定义为字长?或者我的理解完全偏离了轨道?

11得票2回答
C++中size_t的性能表现

我将这里的代码翻译成了以下C++代码 #include <iostream> using namespace std; int t = 20; bool is_evenly_divisible(const int a, const int b) { for (int...

10得票3回答
将整数字面量添加或赋值给size_t类型

在C语言中,我看到很多将整数字面值添加或赋值给size_t变量的代码。size_t foo = 1; foo += 1; 这里发生了什么类型转换,是否可能将 size_t "升级" 为 int,然后再转换回 size_t?如果我处于最大值,这种情况会发生截断吗?size_t foo = SIZ...

269得票15回答
何时使用std::size_t?

我只是想知道在循环和其他方面,我应该使用std::size_t还是int?例如:#include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK...

104得票5回答
什么是查找size_t最大值的便携方法?

我想知道在我的程序运行的系统上,size_t 的最大值是多少。 我的第一反应是使用负数1,就像这样:size_t max_size = (size_t)-1; 但我猜测有更好的方法,或者某个地方定义了一个常量。

579得票8回答
无符号整数 vs. size_t

我注意到现代 C 和 C++ 代码似乎在几乎每个地方都使用 size_t,而不是 int/unsigned int,从 C 字符串函数的参数到 STL。我很好奇这样做的原因和带来的好处。

15得票5回答
为什么数组大小可以用 int 表示,而使用 size_t 呢?

C标准保证int类型能够存储所有可能的数组大小,至少这是我从阅读§6.5.2.1,子节1(数组下标约束)中了解到的。 引用语句如下: “其中一个表达式应具有“指向对象类型”的指针类型,另一个表达式应具有整数类型,并且结果具有“类型”类型。” 由于我们将使用int作为数组下标,那么为...