摘要: 1.++不能认为是原子操作,a是全局变量,在内存中,则++a一般被分为从内存取a到寄存器、+、回写到内存三步. 两个线程并发执行以下代码,假设a是全局变量,那么以下输出_哪个是可能的?int a=1;void foo(){ ++a; printf("%d",a);}解析假设线程x和y同时执行,x和y 阅读全文
posted @ 2019-10-19 16:27 Tonarinototoro 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1. 静态链接库的优点 (1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 2 动态链接库的优点 (1) 更加节省内存并减少页面交换; ( 阅读全文
posted @ 2019-10-18 22:57 Tonarinototoro 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 1.预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)编译, 检查语法,生成汇编 ( test.s main .s)汇编, 汇编代码转换机器码(二进制) (test.o main.o)链接 链接到一起生成可执行程序 (a.out) 2. C++11 STL中的容器 一 阅读全文
posted @ 2019-10-16 14:12 Tonarinototoro 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 1.+重载符号前面的操作数必须是一个对象。 2.关联容器(如map, set, multimap,multiset),删除当前的iterator,只会使当前的iterator失效,只要在erase时,递增当前iterator即可。 对于序列式容器(如vector,deque),删除当前的iterat 阅读全文
posted @ 2019-10-15 12:34 Tonarinototoro 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1.“优先使用对象组合,而不是继承”是面向对象设计的第二原则。 组合也叫“对象持有”,就是在类中定义另一类型的成员,继承会破坏类的独立性,增加系统的复杂性,一般系统的继承层次不超过3层。组合拥有良好的扩展性,支持动态组合,因此请优先考虑组合方法。 2.编 译器在为类对象分配栈空间时,会先检查类的析构 阅读全文
posted @ 2019-10-14 20:59 Tonarinototoro 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1.动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/ 阅读全文
posted @ 2019-10-13 13:19 Tonarinototoro 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.编译把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。按照编译的工作内容推断编译错误可分为词法错误和语法错误。 2.无符号数中的最高位将不再作为符号位而转变为数值位计入数值。还有负数都是以补码形式存储的啊,别又忘了。。。 3." 阅读全文
posted @ 2019-10-11 22:37 Tonarinototoro 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1. _beginthreadex()比较于 CreateThread()有更高的线程安全性,不会造成多个线程共用同一个全局变量的情况。所以应该尽量使用前者。 2.数组下标越界:这个应该是的问题,数组255大小,但是当a[255]就是256个元素,相当于越界了。死循环:这个就是字符型的变量大小在0- 阅读全文
posted @ 2019-10-10 22:05 Tonarinototoro 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.确认测试又称有效性测试,有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的 阅读全文
posted @ 2019-10-09 21:43 Tonarinototoro 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1.unsigned 和signed相加都是按照同样标准的补码加法运算准则进行的。不用再多考虑。值得注意的是这两个加起来会转为unsigned类型而不是普通的int。 2.此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5。 类似于这种的强转是没问题的。 3.几 阅读全文
posted @ 2019-10-07 21:09 Tonarinototoro 阅读(113) 评论(0) 推荐(0) 编辑