新書推薦:
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:NT$
301.0
《
新时代硬道理 广东寻路高质量发展
》
售價:NT$
352.0
《
6S精益管理实战(精装版)
》
售價:NT$
458.0
《
异域回声——晚近海外汉学之文史互动研究
》
售價:NT$
500.0
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:NT$
454.0
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
|
編輯推薦: |
在当今软件开发领域,安全性已成为不可忽视的关键因素,尤其是对于使用C 这样强大而复杂的编程语言的项目而言。正是基于这样的背景,《现代C 安全》一书应运而生,它不仅是一本技术指南,更是每一位C 开发者不可或缺的安全宝典。
一、权威性与深度并重
本书由C 安全领域的资深专家精心撰写,确保了内容的权威性和准确性。作者凭借其深厚的专业背景和丰富的实践经验,深入剖析了现代C 编程中遇到的各种安全挑战,从内存管理、并发编程到现代C 特性的安全应用,无所不包。这种深度和广度的结合,使得本书成为C 安全领域的标杆之作。
二、实战导向,学以致用
与许多理论性强的书籍不同,《现代C 安全》注重实战应用。书中通过大量真实案例和详细的代码示例,展示了如何在日常开发中识别和避免安全漏洞。这种教学方式不仅让读者易于理解,更能够激发他们的动手能力和创新思维。读者在阅读过程中,不仅能够学到知识,更能够将这些知识转化为实际的编程技能,真正做到学以致用。
三、紧跟技术前沿,引领趋势
随着C 标准的不断更新,新的安全特性和最佳实践层出不穷。《现代C 安全》紧跟这一趋势,详细介绍了C 11、C 14、C 17及后
|
內容簡介: |
本书作者基于多年从事大型软件项目开发的经验,以模块化形式精心组织,阐述了如何有效地利用现代C 的新特性和强大的语言功能,同时避开其中的潜在陷阱。本书还总结了C 社区近十年来应用C 11和 C 14新特性的经验,通过使用来自真实代码库的示例说明每个新特性和关键问题,且给出了每个新特性的用例和潜在缺陷,可帮助读者在多样化的大型软件开发环境中做出高效且安全的设计决策。本书对于C 开发人员、团队领导者和技术经理具有很高的参考价值。
读完本书后,读者将会
·理解 C 11/14 每个特性的用途及其最有效的使用方法。
·了解如何解决令人困扰的陷阱和烦人的边界样例(特殊情况时出现)。
·了解哪些特性需要额外的培训、经验和同行评审。
·获得有关编码标准和风格指南的知识,以满足组织需求。
·逐步将现代C 的能力恰当地引入目前已建立的代码库。
|
關於作者: |
约翰·拉科斯(John Lakos)是哥伦比亚大学计算机科学专业和电气工程专业双博士,本科获得麻省理工学院数学和计算机科学双学士学位,是彭博社全球C 软件开发的高级架构师和导师,并拥有多项软件专利。他在2001年创建了彭博社BDE团队,该团队负责维护彭博社的全球C 开发的开源基础库。他还曾在Mentor Graphics公司负责开发大型软件框架和高级ICCAD应用程序。他是C 标准委员会的投票成员,是Large-Scale C Software Design和Large-Scale C Volume I: Process and Architecture的作者。
维托里奥·罗密欧(Vittorio Romeo)是彭博社的高级软件工程师,负责构建关键任务的C 中间件和C 的相关培训。他还是许多开源C 库和游戏的创建者,受邀在众多国际C 会议上发表从游戏开发到模板元编程等主题演讲,并积极参与ISO C 标准化推进工作。
罗斯蒂斯拉夫·赫列布尼科夫(Rostislav Khlebnikov)博士是彭博社BDE团队的高级软件工程师,负责其中高性能C 基础软件的开发、HTTP/2通信库,以及改进BDE库与标准库词汇类型的互操作性等工作。他也是C 标准委员会的活跃成员。
利斯代尔·梅雷迪斯(Alisdair Meredith)是彭博社BDE团队的高级软件工程师,C 标准委员会的长期成员,并在2010年—2015年担任该委员会图书馆工作组主席。
|
目錄:
|
目 录
译者序
序一
序二
第1章 引 言1
1.1 本书特点1
1.2 本书范围1
1.3 本书指导原则1
1.4 安全性2
1.5 安全特性2
1.6 有条件的安全特性2
1.7 不安全特性3
1.8 本书结构3
1.9 本书使用方式4
第2章 安 全 特 性5
2.1 C 115
2.1.1 属性语法:广义属性支持5
2.1.2 连续的>:连续的右尖括号10
2.1.3 decltype:提取表达式类型
的操作符12
2.1.4 默认函数:为特殊成员函数
使用=default16
2.1.5 委派构造:构造函数调用其
他构造函数24
2.1.6 deleted 函数:对任意函数
使用 =delete28
2.1.7 explicit:显式转换运算符32
2.1.8 函数作用域静态’11:线程
安全的函数作用域静态变量36
2.1.9 局部类型’11:作为模板参
数的局部/未命名类型46
2.1.10 long long:至少64位的整
数类型49
2.1.11 noreturn:[[noreturn]]属性52
2.1.12 nullptr:空指针字面值关
键字54
2.1.13 override:成员函数限定符57
2.1.14 原始字符串字面值:内容
语法59
2.1.15 static_assert:编译时断言63
2.1.16 尾置返回:尾置函数返回
类型69
2.1.17 Unicode:字符串字面值71
2.1.18 using关键字:类型/模板
别名73
2.2 C 1476
2.2.1 聚合初始化’14:具有默认
成员初始化器的聚合76
2.2.2 二进制字面值:0b前缀78
2.2.3 deprecated:[[deprecated]]
属性81
2.2.4 数字分隔符:83
2.2.5 变量模板:模板化的变量
声明/定义86
第3章 有条件的安全特性92
3.1 C 1192
3.1.1 alignas说明符92
3.1.2 alignof操作符102
3.1.3 auto变量:自动推导类型的
变量109
3.1.4 大括号初始化: {}121
3.1.5 constexpr函数:编译时可调
用的函数147
3.1.6 constexpr变量:编译时可访
问的变量175
3.1.7 默认成员初始化:默认类/
联合成员初始化程序184
3.1.8 枚举类:强类型、限定作用
域的枚举193
3.1.9 外部模板:显式实例化声明205
3.1.10 转发引用:T&&219
3.1.11 广义POD’11:平凡和
标准布局类型234
3.1.12 继承构造函数:继承基类
构造函数319
3.1.13 列表初始化:
std::initializer_list330
3.1.14 lambda表达式:匿名函数
对象/闭包343
3.1.15 noexcept操作符:询问一个
表达式能否不抛出异常369
3.1.16 不透明的enum:不透明的
枚举声明397
3.1.17 基于范围的循环:for循环408
3.1.18 右值引用:移动语义与&&428
3.1.19 底层类型’11:显式枚举
的底层类型501
3.1.20 自定义字面值:用户定义的
字面值操作符504
3.1.21 可变模板:可变参数模板528
3.2 C 14582
3.2.1 constexpr函数’14:减少
constexpr函数的使用限制582
3.2.2 泛型lambda表达式:具备
模板化调用运算符的lambda
表达式587
3.2.3 lambda捕获:lambda捕获
表达式598
第4章 不安全特性604
4.1 C 11604
4.1.1 carries_dependency:[[carries_
dependency]]属性604
4.1.2 final:禁止重写和派生609
4.1.3 友元’11:对友元声明的
拓展624
4.1.4 内联命名空间:透明的嵌套
命名空间639
4.1.5 noexcept说明符:noexcept
函数规范658
4.1.6 引用限定符:引用限定的
成员函数698
4.1.7 union’11:具有非平凡成
员的联合体712
4.2 C 14716
4.2.1 auto返回:函数返回类型
推导716
4.2.2 decltype(auto):使用decltype
语义推导类型730
参考文献736
|
|