14得票1回答
为什么fgets接受int而不是size_t?

一些函数,如strcpy()、malloc()、strlen()和其他各种函数之类,由于明显的原因将它们的参数或返回值作为size_t而不是int或unsigned int。 一些文件操作函数,如fread()和fwrite(),也使用size_t。因此,可以预期char* fgets (c...

14得票2回答
将 ssize_t 或 size_t 转换

在我项目中使用的源文件中,有一个比较ssize_t和size_t变量的部分。ssize_t sst; size_t st; if(sst == st){...} 我想要消除这个警告:warning: comparison between signed and unsigned integer...

14得票4回答
C语言中的size_t和ssize_t类型如何表示负数值?

size_t 声明为 unsigned int,因此它不能表示负值。因此有 ssize_t,它是 size_t 的 有符号 类型,对吗? 这是我的问题:#include <stdio.h> #include <sys/types.h> int main(){ size...

14得票5回答
使用size_t作为数组迭代器

我最近了解到,size_t的引入是为了使代码未来能够应对本地位数增加和可用内存增加。具体使用定义似乎在存储某些东西的大小,通常是一个数组。现在,我必须想知道这种未来保护措施应该走多远。如果接下来要对数组进行迭代的任务使用 unsigned int 作为索引数组,那么使用具有未来保护和适当大小的...

14得票4回答
在循环中计数时,有符号值和无符号值的区别是什么?

所以我在程序中有一个普通的 for 循环,遍历了一个对象向量(这些对象是我定义的类型,如果这很重要的话):for(int k = 0; k < objects.size(); k++){ ... } ...当我编译时,我收到了这个警告:warning: comparison betwee...

14得票3回答
如何定义一个自定义的跨平台size_t类型?

std::size_t通常用于数组索引和循环计数。根据定义,std::size_t是sizeof操作符的结果以及sizeof...操作符和alignof操作符(自C++11起)的无符号整数类型。它在以下头文件中定义: <cstddef> <cstdio> <c...

13得票4回答
size_t是否保证是整数类型之一的别名类型?

或者它可以是一个单独的无符号整数类型吗? 我有针对不同(无符号)整数类型的模板函数的不同专业化。我需要为size_t提供一个单独的专业化吗?

12得票4回答
使用负整数和size_t一起是否安全?

我刚刚看到了一些C++代码。它使用条件来决定是向前还是向后遍历一个std::vector。编译器没有报错,但我认为size_t是无符号的。这样做是否危险?vector<int> v { 1,2,3,4,5 }; bool rev = true; size_t start,...

12得票6回答
对于 size_t 的否定形式(即 `-sizeof(struct foo)`),应该发生什么?

我在工作中处理一些包含以下形式表达式的代码-(sizeof(struct foo)) 即对一个 size_t 的否定,我不明白 C 和 C++ 标准在编译器看到这种情况时要求什么。特别是从这里和其他地方的观察中,sizeof 返回一个无符号整数值,类型为 size_t。我找不到任何关于否定无符...

12得票5回答
将size_t转换为unsigned int(来自API函数)

我正在使用Oracle API访问数据库,该API有一个函数readBuffer(char * buffer, unsigned int size);,但我无法对其进行任何更改。 我有一个使用此API的类,我的函数签名目前需要一个std::string和一个unsigned int作为大小参...