
Linux
Dust_to_Dust
愿你我都能实现自己的梦想!
展开
-
malloc相关内容,你知道吗?
当一个程序经过预编译、编译、链接之后到底经历了一个怎样的过程呢?,,,,当我们写的程序内有malloc操作,那么内存到底可以申请多大呢? 简单的来说下:程序首先在编译器中,经过编译之后会形成汇编格式的.o后缀的文件,经过链接之后 形成.exe的可执行文件。 1. 为什么要编译? 因为我们所使用的电脑是经过这些伟大的程序员们抽象了好多层之后的结果,那么我们得抽丝剥茧的来理解它。 计算原创 2017-10-10 15:09:04 · 302 阅读 · 0 评论 -
Linux下的线程同步控制:条件变量
线程同步的概念: 多个线程共享相同的内存时,需要看到一致的数据即保证不能读取脏数据,因此需要用到线程同步的知识。 线程同步有哪些方式 1.信号量 2.互斥量 3.条件变量1. 信号量 信号量是一种特殊类型的变量,它可以被增加或者减少,但对其的关键访问被保证是原子操作,即使在一个多线程程序也是如此。信号量的值代表着资源数的多少,我们先讨论二进制信号原创 2017-10-12 12:24:53 · 248 阅读 · 0 评论 -
神奇的i++和++i
我建议像我一样,不是很厉害的代码搬运工,看别人代码前先思考思考。 你认为下边的代码的结果是什么?自己再编译器上尝试一下吧void main(){ int i = 0; printf("%d,%d\n", i++, --i);}来条毫无瑕疵的分割线结果是-1,0 这个比较好想,因为,参数从右向左遍历,–i的做法是直接草做i的值,此时i的值为-1;i++的做法是,先将i的值-1保原创 2017-10-22 21:54:15 · 382 阅读 · 1 评论