摘要: 是c语言中的位运算符:取反.0在内存中的存储方式是所有位为0,0000000000000000那么按位取反后位16个1(如果整形在你的机器上站16位),那么表示的数为-1. 阅读全文
posted @ 2016-12-07 15:54 knightsoul 阅读(28636) 评论(0) 推荐(1) 编辑
摘要: 理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。 常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址 阅读全文
posted @ 2016-12-07 14:33 knightsoul 阅读(26095) 评论(0) 推荐(1) 编辑
摘要: 指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关,譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节。 可以在自己的电脑上测试下: [cpp] view plain copy #include <stdio.h> int main( 阅读全文
posted @ 2016-12-07 14:27 knightsoul 阅读(6104) 评论(0) 推荐(0) 编辑
摘要: 主 要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代 码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这 类函数 阅读全文
posted @ 2016-12-07 13:55 knightsoul 阅读(7003) 评论(0) 推荐(2) 编辑
摘要: .volatile的本质: 1> 编译器的优化 在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。 当变量在因别的线程等而改变了值, 阅读全文
posted @ 2016-12-07 10:33 knightsoul 阅读(40721) 评论(0) 推荐(5) 编辑