2013年9月29日

类型转换函数

摘要: CString strFileName;LPSTR lpStr = (LPSTR)(LPCSTR)strFimeName;LPSTR lpStr = _T("TestStr");CString str(lpStr);cstring.format-----》http://www.cnblogs.com/zlintokyo/archive/2011/09/28/2193885.htmlstring str1="ewafgsadgvfsd";const char *str=str1.c_str();char *str3="fsdrfsdcds&quo 阅读全文

posted @ 2013-09-29 22:25 xiaofangne 阅读(185) 评论(0) 推荐(0) 编辑

地址总线和数据总线

摘要: cpu处理计算的时候“数据”和“指令”是不同对待的。 8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令"。比如'00001101'. 又比如:“+1”这个运算,你要先指示CPU做“+”,完成后再输入“1”数据给CPU。 8位的CPU优点是设计简单,处理速度比较快。 缺点就是:软件设计复杂,繁琐。不利于计算机的发展。 后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。 32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命 阅读全文

posted @ 2013-09-29 11:56 xiaofangne 阅读(1406) 评论(0) 推荐(0) 编辑

x86的字节对齐与不对齐的问题

摘要: 比如这么一个结构体structfoo{shorts;intn;};structfoobar;假设bar的地址是0x12345670如果不按4字节对齐那么bar.n的地址就是0x12345672,也就是下面的黑体部分0x12345670a0a1a2a30x12345674b0b1b2b3为了取到n的值就需要访问两次内存,一次访问0x12345670,一次访问0x12345674然后把两个int值组合在一起,a2a3b0b1http://www.doc88.com/p-205512154878.html 此文中说明更加详细易懂市面上所说的64位处理器包括AMD Athlon 64与INTEL的EM 阅读全文

posted @ 2013-09-29 11:42 xiaofangne 阅读(530) 评论(0) 推荐(0) 编辑

size_t

摘要: 在C++中,设计 size_t 就是为了适应多个平台的 。size_t的引入增强了程序在不同平台上的可移植性。size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义一最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。为了提高代码的可移植性,就有必要定义这样的数据类型。一般这种类型都会定义到它具体占几位内存等。当然,有些是编译器或系统已经给定义好的。经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增强程序的可移植性。int i; // 定义一个int类型的变量is 阅读全文

posted @ 2013-09-29 10:34 xiaofangne 阅读(220) 评论(0) 推荐(0) 编辑

导航