随笔分类 -  读书笔记

摘要:第四章与CPU设计有关,暂时跳过,以后有时间再看。 编写高效程序要点: 必须选择一组合适的算法和数据结构; 必须编写出编译器能够有效优化以转换成高效可执行代码的源代码; 针对运算量特别大的计算,将一个任务分成多个部分,在多核和多处理器的某种组合上并行地计算。(第12章内容) 优化编译器的能力和局限性 阅读全文
posted @ 2022-04-21 14:30 浮生的刹那 阅读(108) 评论(0) 推荐(0) 编辑
摘要:阅读和理解汇编代码有助于最大程度优化代码性能。 #生成汇编代码文件 使用gcc命令:#gcc -Og -S prog.c -Og指的是编译器的优化选项。-S将使得编译结果为.s的汇编语言文件。 或者可以使用反汇编器,先通过#gcc -Og -c prog.c得到prog.o的机器代码文件(或者是可执 阅读全文
posted @ 2022-04-16 15:56 浮生的刹那 阅读(175) 评论(0) 推荐(0) 编辑
摘要:大端法和小端法 排列表示一个对象的字节时的两种通用规则。注意是字节不是位,一个字节有8位。 小端法:在内存中按照从最低有效字节到最高有效字节的顺序存储对象,最低有效字节在最前面的方式。 大端法:在内存中按照从最高有效字节到最低有效字节的顺序存储对象,最高有效字节在最前面的方式。 补码 正数的补码就是 阅读全文
posted @ 2022-04-04 12:39 浮生的刹那 阅读(20) 评论(0) 推荐(0) 编辑
摘要:编译系统将源文件生成可执行文件的四个阶段 预处理阶段 编译阶段 汇编阶段 链接阶段 存储器层次结构 L0 : 寄存器 L1 : L1高速缓存 L2 : L2高速缓存 L3 : L3高速缓存 L4 : 主存DRAM L5 : 本地二级存储(本地磁盘) L6 : 远程二级存储(分布式文件系统,Web服务 阅读全文
posted @ 2022-03-26 17:03 浮生的刹那 阅读(24) 评论(0) 推荐(0) 编辑
摘要:参考廖雪峰的Git教程网站进行学习(https://www.liaoxuefeng.com/wiki/896043488029600) #安装 $ sudo apt-get install git 创建库 ##建立空仓库 $ git init 用ls -ah查看隐藏目录.git ##添加文件 $ g 阅读全文
posted @ 2022-03-11 23:31 浮生的刹那 阅读(34) 评论(0) 推荐(0) 编辑
摘要:#条款53:Pay attention to compiler warnings. 严肃对待编译器发出的警告信息。努力在你的编译器的最高(最严苛)警告级别下争取“无任何警告”的荣誉。 不要过度倚赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植到另一个编译器上,你原本倚赖的警告信息 阅读全文
posted @ 2021-10-05 16:08 浮生的刹那 阅读(20) 评论(0) 推荐(0) 编辑
摘要:#条款49:Understand the behavior of the new-handler. 当operator new无法满足某一内存分配需求时,它会抛出异常。当operator new抛出异常以反映一个未获满足的内存需求之前,它会先调用一个客户指定的错误处理函数,一个所谓的new-hand 阅读全文
posted @ 2021-10-05 16:04 浮生的刹那 阅读(39) 评论(0) 推荐(0) 编辑
摘要:C++ template机制自身是一部完整的图灵机(Turing-complete):它可以被用来计算任何可计算的值。 #条款41:Understand implicit interfaces and compile-time polymorphism. classes和templates都支持接口 阅读全文
posted @ 2021-09-30 16:35 浮生的刹那 阅读(59) 评论(0) 推荐(0) 编辑
摘要:#条款32:Make sure public inheritance models"is-a." “public继承”意味is-a。适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base class对象 阅读全文
posted @ 2021-09-22 19:44 浮生的刹那 阅读(34) 评论(0) 推荐(0) 编辑
摘要:#条款26:Postpone variabledefinitions as long as possible. 尽可能延后变量定义式的出现。这样做可增加程序的清晰度并改善程序效率。 你不只应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止。 #条款2 阅读全文
posted @ 2021-09-15 22:08 浮生的刹那 阅读(52) 评论(0) 推荐(0) 编辑
摘要:#条款18:Make interfaces easy to use correctly and hard to use incorrectly. ■ 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 ■ “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容 阅读全文
posted @ 2021-09-13 18:54 浮生的刹那 阅读(37) 评论(0) 推荐(0) 编辑
摘要:#条款13:Use objects to manage resources. 为防止资源泄漏,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。 两个常被使用的RAII classes分别是shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比较直观。若选 阅读全文
posted @ 2021-09-08 21:16 浮生的刹那 阅读(39) 评论(0) 推荐(0) 编辑
摘要:#条款05:Know what functions C++ silently writes and calls. 编译器会默认为空类(empty class)创建缺省的(default)构造函数、copy构造函数、copyassignment 操作符,以及析构函数。 编译器产出的析构函数是个non- 阅读全文
posted @ 2021-09-06 22:25 浮生的刹那 阅读(52) 评论(0) 推荐(0) 编辑
摘要:#题目 练习 6.2重新以template形式实现练习4.3的Matrix class,并扩充其功能,使它能够通过heap memory(堆内存)来支持任意行列大小。分配/释放内存的操作,请在constructor/destructor中进行。 ##书中习题解答给出的代码 #include <ios 阅读全文
posted @ 2021-08-30 18:26 浮生的刹那 阅读(76) 评论(0) 推荐(0) 编辑
摘要:#条款01:View C++ as a federation of languages. C++可以看作4种语言的集合: C,C++完全兼容C,C基本兼容C。C继承了C语言的blocks、statements、preprocessor、built-in data types、arrays、point 阅读全文
posted @ 2021-08-26 23:01 浮生的刹那 阅读(51) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示