我注意到现代C和C++代码似乎在几乎所有地方都使用size_t而不是int/unsigned int-从C字符串函数的参数到STL.我很好奇这样做的原因和它带来的好处.
size_t
int
unsigned int
size_t类型是无符号整数类型,是sizeof运算符(和offsetof运算符)的结果,因此它保证足够大,可以包含系统可以处理的最大对象的大小(例如8Gb的静态数组).
sizeof
offsetof
size_t类型可能大于、等于或小于unsigned int,编译器可能会对其进行假设以进行优化.
您可以在C99标准第7.17节中找到更精确的信息,该标准的草案在互联网上以pdf格式提供,或者在C11标准第7.19节中也可以以pdf draft格式提供.
如何系统地使用软件预取?
将C中的2D char数组写入/读取到二进制文件
读取输入数据(在 C 中)后,scanf 是否清空缓冲区?
关于函数中返回局部指针变量的问题
SIMD - 如何从不同元素宽度的 2 个向量中添加相应的值(char 或 uint8_t 添加到 int)
使用R的`.C`接口处理读/写文件
C 编程语言中有范围运算符吗?
为什么 memchr() 将 void 指针作为输入?
在数组中查找与数组均值相同的对
C中的通用快速排序
使用整数存储许多布尔值是否值得?
DirectX11 与多视频适配器 (GPU) PC
C printf中的'I'(大写i)标志是什么?
OpenMP 线程 ID 如何与递归一起工作?
假设指向同一个变量的两个指针是非法的/UB,为什么 C 编译器不能优化更改 const 指针的值?
在 Win32 上双重转换为 unsigned int 被截断为 2,147,483,648
升级到 Catalina 10.15 后无法在 Mac 上编译 C 程序
为什么glibc的strlen需要这么复杂才能快速运行?
程序是 32 位还是 64 位意味着什么?
如果不在内存中,表达式和常量存储在哪里?
微服务架构实战160讲 -〔杨波 - 171讲〕
机器学习40讲 -〔王天一 - 46讲〕
Nginx核心知识100讲 -〔陶辉 - 155讲〕
Elasticsearch核心技术与实战 -〔阮一鸣 - 100讲〕
从0打造音视频直播系统 -〔李超 - 41讲〕
说透中台 -〔王健 - 14讲〕
SRE实战手册 -〔赵成 - 13讲〕
Django快速开发实战 -〔吕召刚 - 76讲〕
Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙) - 38讲〕
徐昊·TDD项目实战70讲 -〔徐昊 - 70讲〕
说透元宇宙 -〔方军 - 14讲〕
Learnfk - RSpec教程
Learnfk - Sed教程
Learnfk - Angular7教程
Learnfk - JSoup教程
Learnfk - Node.js教程
Learnfk - Socket.io教程
Learnfk - Django教程
Learnfk - C++教程
Learnfk - R教程
Learnfk - Swift5教程