我正在为我的团队调查使用size_t与int(或者long,等等)的标准。目前最大的缺点是如果对两个size_t对象进行差异操作,可能会引起问题(具体问题不确定--也许某些内容没有2的补码并且带符号/无符号可能会使编译器出现错误)。我在使用V120 VS2013编译器编写了一个快速的C++程序...
“size_t”是否代表编译代码的机器的字长?我使用g++解析时,编译器将“size_t”视为“long unsigned int”。是编译器内部选择了“size_t”的大小,还是“size_t”在调用编译器之前已经在“stddef.h”中进行了预处理宏定义为字长?或者我的理解完全偏离了轨道?
我将这里的代码翻译成了以下C++代码 #include <iostream> using namespace std; int t = 20; bool is_evenly_divisible(const int a, const int b) { for (int...
在C语言中,我看到很多将整数字面值添加或赋值给size_t变量的代码。size_t foo = 1; foo += 1; 这里发生了什么类型转换,是否可能将 size_t "升级" 为 int,然后再转换回 size_t?如果我处于最大值,这种情况会发生截断吗?size_t foo = SIZ...
我只是想知道在循环和其他方面,我应该使用std::size_t还是int?例如:#include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK...
我想知道在我的程序运行的系统上,size_t 的最大值是多少。 我的第一反应是使用负数1,就像这样:size_t max_size = (size_t)-1; 但我猜测有更好的方法,或者某个地方定义了一个常量。
我注意到现代 C 和 C++ 代码似乎在几乎每个地方都使用 size_t,而不是 int/unsigned int,从 C 字符串函数的参数到 STL。我很好奇这样做的原因和带来的好处。
C标准保证int类型能够存储所有可能的数组大小,至少这是我从阅读§6.5.2.1,子节1(数组下标约束)中了解到的。 引用语句如下: “其中一个表达式应具有“指向对象类型”的指针类型,另一个表达式应具有整数类型,并且结果具有“类型”类型。” 由于我们将使用int作为数组下标,那么为...