808得票15回答
在C语言中,size_t是什么?

我对C语言中的size_t感到困惑。我知道它是由sizeof运算符返回的。但它究竟是什么?它是一种数据类型吗? 假设我有一个for循环:for(i = 0; i < some_size; i++) 我应该使用int i;还是size_t i;?

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

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

271得票8回答
size_t与uintptr_t的区别

C标准保证size_t是一种可以容纳任何数组索引的类型。这意味着,从逻辑上讲,size_t应该能够容纳任何指针类型。我在谷歌上找到了一些网站,上面写着这是合法的,或者应该总是起作用:void *v = malloc(10); size_t s = (size_t) v; 因此,在C99中,标准...

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...

184得票3回答
size_t和std::size_t的区别

在它们声明的位置、使用时机以及任何其他区别方面,size_t和std::size_t 有何不同之处?

118得票2回答
我应该使用size_t还是ssize_t?

在我的代码中,我不使用 int 或 unsigned int。我只使用 size_t 或 ssize_t 来保持可移植性。例如: typedef size_t intc; // (instead of unsigned int) typedef ssize_t uintc; // (...

108得票9回答
在C++中如何清晰地输出size_t(或:C99中%z的最近等效物)

我有一些 C++ 代码,它打印了一个 size_t:size_t a; printf("%lu", a); 我希望在32位和64位架构上编译此代码时不会收到任何警告。如果这是C99,我可以使用printf(“%z”,a);。 但据我了解,在任何标准的C ++语言中都不存在%z。所以,我必须执...

106得票3回答
C语言中平台无关的size_t格式说明符是什么?

我想在C语言中打印一个size_t类型的变量,但是在不同的架构上size_t被别名为不同的变量类型。例如,在一台机器上(64位),以下代码不会产生任何警告:size_t size = 1; printf("the size is %ld", size); 但在我的另一台机器上(32位),以上代...

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

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

76得票5回答
如何将size_t转换为double或int C++

我的问题是: 我有一个 size_t 类型的数据,现在我想将它转换成 double 或 int 类型。 如果我像这样做: size_t data = 99999999; int convertdata = data; 编译器会报警告,因为它可能会溢出。你是否有像Boost或其他方法可以进...