这本综合指南探讨了C中不确定行为的复杂性,而不仅仅是典型的教科书解释。 对于经验丰富的C程序员来说,这是一个深入了解该主题最晦涩的方面的理想之选,是最初计划以十一部分系列计划的六个月项目的高潮,但扩展到了十二个。 由Dmitry Sviridkin撰写,并由Andrey Karpov编辑,该作品定于未来的印刷出版物。
这本书深入研究了各种主题,包括:
-
简介:定义不确定的行为及其后果;探索狭窄的转换和隐式类型的转换。
- 整数和浮点问题:检查签名的整数溢出,浮点特点,整数促销和的细微差别和签名扩展。
char
>内存管理和参考:- 解决悬空的参考,,基于范围的循环,自我引用和参考无效。
string_view
>
std::vector
> lambda函数和untability:- 分析lambda函数捕获列表,元组,意外突变性,隐式参考,使用后使用后使用和终身扩展。>
>解析和移动语义:- 应对最烦人的解析,非恒定常数,移动语义,> ,并忘记了
std::enable_if_t
语句。
std::void_t
return
运算符和i/o: 涵盖椭圆机和功能,- ,调试的挑战,逗号运算符,功能 - 尝试式块和零尺寸类型。 >
字符串和智能指针:
operator[]
讨论无效的字符串,iostreams
,显式类型转换和安全的标准功能传递。
>- >循环,递归和缓冲液:探索无限循环,停止问题,递归,处理和缓冲区溢出。>
std::shared_ptr
> raii,指针和初始化:- 比较(n)rvo and raii,检查零指针删除,静态初始化顺序惨败,静态内联函数,odr侵犯和保留名称。
>类型,变量和范围:
noexcept
钻探琐碎的类型和ABI,非初始化变量,C 20无界范围,非虚拟范围,非虚拟的但虚拟的函数以及vlas。
- >指针,并发和信号:解决无效的指针,阵列的新位置,数据竞赛,穆特族僵局,信号安全性和最佳终止障碍实践。
- 向量,对齐和静态分析:分析>和,未对齐的参考,对象寿命,静态分析和未定义的行为,以及结论说明。
- 许可和用法:
- 这项工作可供参考,并具有适当的归因。 复制或复制需要作者的许可(dmisvrl1@gmail.com)。 禁止商业用途或基于收费的指导。
关于作者的
std::vector::reserve
:std::vector::resize
- dmitry sviridkin: AWS的软件工程师在高性能软件开发方面具有丰富的经验,以及教学C和Linux系统编程的背景。>>>>
> PVS-Studio项目的共同创始人,在静态代码分析和软件质量方面拥有超过15年的经验,以及Microsoft MVP奖励的收件人。
以上是C程序员&#s未定义行为指南的详细内容。更多信息请关注PHP中文网其他相关文章!