C
文章平均质量分 64
wonderhowwonderwhy
这个作者很懒,什么都没留下…
展开
-
嵌入式与C语言
VolatileVolatile 英文单词的意思是不稳定的,反复无常的. 在C语言中用volatile的关键字声明变量,就是说这个变量会发生意想不到的变化,每次用这个值的时候都需要重新去读取. 精确的讲应该是优化器用这个变量的时候每次都需要重新去读取这个值,而不能用保存在寄存器里的变量。这是编译器优化器的副作用,因此有些变量要定义为volatile, 特别是在嵌入式编程中, 这是区分嵌入式工程原创 2015-01-08 22:03:07 · 1027 阅读 · 0 评论 -
C/C++编译程序的内存分配(栈,堆,全局区,文字常量区,程序代码区)
栈: 由程序自动分配和释放,非全局变量或静态变量,以及非malloc申请的空间,都在栈中。堆: 由程序员申请的内存空间: malloc, 在堆中申请的内存需要自己释放,malloc与free成对全局区: 全局变量和静态变量,里面又分为初始化区和未初始化区文字常量区: 字符常量程序代码区: 代码 //main.cpp int a = 0; a 全局初原创 2014-12-27 22:49:45 · 1382 阅读 · 0 评论 -
switch case 为何比if else 高效
If value issequential, it uses table to record the offset and jump to the executingaddressIf value is randomand big interval, it uses binary tree search and jump to the executing address原创 2015-05-13 14:04:41 · 857 阅读 · 0 评论 -
Queue depth 增益(SSD/flash,etc)
SATA/PCIE/UFS 都支持Q的操作,即一次性发多个R/W命令。它的performance 增益并不是简单的乘以queue depth。每个queue落到die上是随机的,因此需要通过概率来统计这个值。原创 2015-10-25 22:55:39 · 1237 阅读 · 0 评论