图书介绍
从缺陷中学习C/C++PDF|Epub|txt|kindle电子书版本下载
- 刘新浙,刘玲,王超等编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115321596
- 出版时间:2013
- 标注页数:166页
- 文件大小:25MB
- 文件页数:182页
- 主题词:C语言-程序设计
PDF下载
下载说明
从缺陷中学习C/C++PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 基础问题1
1.1运算符优先级引起的问题1
1.2不加括号的宏定义引起的错误2
1.3污染环境的宏定义3
1.4多语句宏定义使用错误4
1.5 char转为int时高位符号扩展的问题6
1.6 int转为char时的数据损失7
1.7非法的数组下标9
1.8有符号int与无符号int比较的后果10
1.9有符号的困惑11
1.10整除的精度问题13
1.11浮点数比较的精度问题14
1.12最小负整数取相反数溢出15
1.13临时变量溢出16
1.14 size t导致的死循环17
1.15 误用short引起缓冲区溢出18
1.16区分continue和return20
1.17指针常量和常量指针的区别21
1.18字符数组和指针不总是等价的23
1.19结构体成员变量初始化的隐患24
1.20返回值非void的函数没有返回值25
1.21 cin>>和getline混用导致的奇怪问题27
1.22小结29
第2章 编译问题30
2.1动态链接库加载错误版本30
2.2相同名称静态库的链接顺序32
2.3使用命名空间来区分不同cpp中的同名类33
2.4 C++模板编译时依赖名称查找34
2.5违背ODR原则可能会带来的意想不到的问题36
2.6变量共用内存时使用O2优化编译38
2.7小结40
第3章 库函数问题41
3.1 sprintf函数引起的缓冲区溢出41
3.2 snprintf函数format参数的问题43
3.3错误使用snprintf函数返回值44
3.4字符串复制不完整45
3.5 string类的c_str方法使用不当46
3.6 string类的“[]”操作符使用不正确48
3.7不正确的字符串比较49
3.8 stmcpy函数没有复制结束符51
3.9调用memcpy函数前未初始化缓冲区52
3.10误用sizeof操作符取字符串长度53
3.11 string类find函数返回值判定54
3.12 stringstream的清空56
3.13调用strptime函数前需初始化trm57
3.14使用feof函数的陷阱59
3.15 for循环中调用vector容器insert函数60
3.16 multiset容器erase函数的误用62
3.17慎用容器类erase函数的返回值63
3.18 for循环中调用vector容器erase函数65
3.19 getopt函数参数问题67
3.20不用ermo判断系统调用是否成功69
3.21 strcat函数造成的段错误70
3.22危险的strdup函数71
3.23小结73
第4章 文件处理74
4.1程序异常退出时未关闭已打开文件74
4.2目录打开后未关闭75
4.3写文件没有调用fflush76
4.4读文件fread的返回值不能忽略77
4.5 getline()使用不当导致的死循环78
4.6未重置流状态导致读文件错误80
4.7小结82
第5章 类和对象83
5.1对象的浅复制83
5.2构造函数中的操作符重载85
5.3拷贝构造函数不能模板化87
5.4析构函数未捕获异常引发coredump89
5.5构造函数中抛出异常引起内存泄露91
5.6多态性未生效93
5.7基类成员函数被隐藏94
5.8匿名对象引起的内存泄露96
5.9基类非虚析构函数引发内存泄露97
5.10删除void指针引发内存泄露100
5.11 STL容器不会自动释放指针指向的对象102
5.12静态成员类内初始化104
5.13 union作为类的成员时需要构造函数105
5.14成员函数尾部缺失const标注107
5.15 使用memset初始化class109
5.16 dynamic_cast转换失败返回NULL110
5.17小结113
第6章 内存使用114
6.1数组越界114
6.2数组定义和值初始化形式混淆115
6.3数组传参时的sizeof116
6.4临时对象的生存期117
6.5变量的作用域119
6.6指针变量的传值和传址120
6.7指针赋值和指针赋址的混淆121
6.8指针释放后再次使用122
6.9重复申请内存未释放124
6.10 delete与delete[]的区别126
6.11函数中途退出忘记释放内存126
6.12二维数组的内存泄露127
6.13临时变量内存不能返回128
6.14正确使用引用参数和引用返回值129
6.15 试图产生的指针很可能不存在130
6.16结构体成员内存对齐问题131
6.17 String对象何时需delete134
6.18小结135
第7章 多线程问题136
7.1局部静态变量非线程安全136
7.2 string类append操作非线程安全138
7.3中途退出造成的线程阻塞142
7.4结构体位域成员线程安全问题144
7.5多线程写文件引发内容被覆盖146
7.6线程未join引起的内存泄露148
7.7小结150
第8章 性能问题151
8.1 strlen用作循环条件影响性能151
8.2 STL容器list使用时忌频繁调用size()152
8.3误用clear回收vector内存154
8.4 calloc在glibc高版本下性能劣于低版本下156
8.5小结157
第9章 C/C+编程中其他问题158
9.1中文截断成乱码158
9.2不必要的类型转换159
9.3不确定的函数参数赋值161
9.4 epoll边沿触发模式下的陷阱163
9.5小结166