摘要: 理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。 常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址 阅读全文
posted @ 2016-12-07 14:33 knightsoul 阅读(26038) 评论(0) 推荐(1) 编辑
摘要: 指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关,譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节。 可以在自己的电脑上测试下: [cpp] view plain copy #include <stdio.h> int main( 阅读全文
posted @ 2016-12-07 14:27 knightsoul 阅读(6087) 评论(0) 推荐(0) 编辑
摘要: 主 要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代 码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这 类函数 阅读全文
posted @ 2016-12-07 13:55 knightsoul 阅读(6988) 评论(0) 推荐(2) 编辑
摘要: .volatile的本质: 1> 编译器的优化 在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。 当变量在因别的线程等而改变了值, 阅读全文
posted @ 2016-12-07 10:33 knightsoul 阅读(40665) 评论(0) 推荐(5) 编辑
摘要: CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分 不同类型CPU的重要标示。目前市面上的CPU指令集分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM 为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如 阅读全文
posted @ 2016-12-02 17:16 knightsoul 阅读(5262) 评论(0) 推荐(0) 编辑
摘要: CPU是手机上面最复杂,最贵的Soc(芯片),担任的也是手机中大脑的位 置,是手机跑分性能的决定性硬件。智能手机发展到今天,各大手机CPU厂商也从春秋战国逐渐到了现在四国鼎立的时代(高通,MTK,三星,苹果A系列)。 当然最大的CPU厂商还是Intel,只不过intel的主力是在x86架构的处理器, 阅读全文
posted @ 2016-12-02 17:11 knightsoul 阅读(31672) 评论(1) 推荐(2) 编辑
摘要: 1,IO空间:X86一个特有的空间,与内存空间独立的空间,同样利用IO空间可以操作数据,只不过是利用对应的IO端口操作函数,例如inb(), inbw(), inl(); outb(), outw(), outl()等。 2,内存空间:内存地址的寻址范围,例如32位操作系统内存空间为2的32次幂,即 阅读全文
posted @ 2016-12-02 16:49 knightsoul 阅读(10405) 评论(0) 推荐(1) 编辑
摘要: 每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存 阅读全文
posted @ 2016-12-02 16:47 knightsoul 阅读(1683) 评论(0) 推荐(0) 编辑
摘要: linux终端下,编译C语言程序步骤为: 采用vi进行源代码编写,编写完成后,:wq存盘退出,如: vi test.c 在命令行下,运行gcc编译程序,生成执行码,如: gcc -o test test.c -o 表示指明生成的执行码名称 运行编译后的执行码 ./test 采用vi进行源代码编写,编 阅读全文
posted @ 2016-12-02 14:37 knightsoul 阅读(4974) 评论(0) 推荐(0) 编辑
摘要: 撤销git add: git reset HEAD+路径 或者git reset --+路径 撤销commit: 1.回退到具体的嘻哈值 git reset --hard 2.回退后仍包含本地修改:git reset --soft 想问下大家git如何删除本地所有未提交的更改,包括修改的、新增的、删 阅读全文
posted @ 2016-12-02 10:55 knightsoul 阅读(1461) 评论(0) 推荐(0) 编辑