70得票4回答
为什么size_t是无符号的?

《C++程序设计语言》中,Bjarne Stroustrup写道: unsigned整数类型非常适合将存储视为位数组的用途。为了表示正整数而使用unsigned而不是int来获得多一个比特位几乎从不是一个好主意。通过声明变量为unsigned来确保某些值为正数的尝试通常会被隐式转换规则所破...

66得票8回答
在C++中,"std::size_t"有意义吗?

在我继承的一些代码中,我经常看到size_t与std命名空间限定符一起使用。例如:std::size_t n = sizeof( long ); 当然,它能够编译和运行。但我认为这是一种不好的做法(可能是从C语言中继承下来的?)。 在C++中,size_t已经内置并且位于全局命名空间中,这是真...

64得票4回答
32位和各种64位数据模型中,size_t的大小是多少?

在64位系统上,sizeof(unsigned long) 取决于系统实现的数据模型,例如,在LLP64 (Windows)上它是4个字节,在LP64 (Linux等)上是8个字节。那么sizeof(size_t)应该是多少呢?它是否像sizeof(long)一样因数据模型而异?如果是,那么它...

61得票3回答
sizeof运算符的返回类型是什么?

sizeof 运算符的返回类型是什么?cppreference.com 和 msdn 均指出 sizeof 返回 size_t。它真的会返回 size_t 吗? 我正在使用 VS2010 Professional,并针对 x64 进行目标设置。 int main() { int si...

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

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

53得票1回答
size_t的最大大小

我知道在 C 中,sizeof 运算符的返回类型是 size_t,它是在 <stdint.h> 中定义的无符号整数类型。这意味着它的最大值应该是 65535,正如 C99 标准所述 7.18.3:limit of size_t SIZE_MAX 6553...

52得票4回答
在C语言中,我可以直接比较int和size_t吗?

我可以像这样比较一个int和一个size_t变量吗: int i = 1; size_t y = 2; if (i == y) { // Do something } 我需要对它们中的一个进行类型转换吗?

40得票7回答
一个 size_type 是否可能比 std::size_t 更大?

使用std::allocator的标准容器将其size_type定义为std::size_t。然而,是否可能有一个分配器来分配大小不能用size_t表示的对象?换句话说,size_type可以比size_t更大吗?

36得票3回答
GCC Linaro编译器报错"unknown type name size_t"

我正在使用GCC Linaro编译器来编译我的代码。它报错 unknown type name size_t,报错来自于libio.h,而libio.h是从stdio.h中引用的。 在我的代码中,我只是包含了stdio.h。 有没有人能告诉我如何解决这个错误。

35得票2回答
为什么定义了rsize_t?

我发现strncpy_s()在VS2013下的定义为errno_t __cdecl strncpy_s ( _Out_writes_z_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(...