C/C++
文章平均质量分 71
小弟季义钦
好东西要大家分享!
展开
-
CPU端序(字节序)
小端: 低地址存放低位字节。(x86是小端模式)大端: 低地址存放高位字节。(非x86是大端模式)例1:看下面的几个字段void testEndianMem(){ char a[] = {0x12,0x34}; short b = 0x5678; int c = 0x1a2b3c4d;}栈的按照地址的反方向增长,故存放到内存的情况应该是: 先存a,再存b,再存c原创 2012-11-01 21:33:37 · 1044 阅读 · 0 评论 -
C++中结构体的sizeof
为什么要地址对齐? * 我们在访问内存时,如果地址是按4字节对齐,则访问效率会高很多。 * 这个问题的原因在于访问内存的硬件电路。一般情况下,地址总线总是按照对齐后的地址来访问。 * 例如你想得到0x00000001开始的4字节内容,系统首先需要以0x00000000读4字节, * 然后从中取得3字节,然后在用0x00000004作为开始地址,获得下一个四字节, * 在从中得到第一个字节原创 2012-11-01 18:33:36 · 990 阅读 · 0 评论 -
C++之Virtual初探(一)
#includeusing namespace std;class A{public: virtual ~A(){f();} virtual void f(){cout<<"This is A virtual"<<endl;} void g(){cout<<"This is A no-virtual"<<endl;}};class B:public A{原创 2012-11-02 21:54:23 · 794 阅读 · 0 评论 -
数组和指针
#include using namespace std;void testPointer(){ int a[] = {1,2,3,4,5}; int *p = a; //本身就是int型指针// int *q = &a; //转换成int型指针 int *t = &a[0]; //本身就是int型指针 p++;// q++; t++; print原创 2012-11-02 22:54:36 · 774 阅读 · 0 评论 -
C++中类的sizeof
#include using namespace std;#pragma pack(2) class A{ int i; //4 union U{ //14 char buff[13]; int i; }u; //注意,这里是申明了一个union变量 enum{red, green, blu原创 2012-11-01 18:01:00 · 924 阅读 · 0 评论 -
sizeof和strlen
#include #include using namespace std;/* */void test(){ char *a = "hello"; char b[] = {'h','e','l','l','o','\0'}; char c[] = "hello"; cout<<sizeof(a)<<endl; //4 cout<<sizeof(b原创 2012-10-31 12:52:02 · 926 阅读 · 0 评论 -
关于a++和++a
#include int main(){ int a,b; a = 4; a += (a++); printf("%d\n",a);//96: a = 4;0040D7B8 mov dword ptr [ebp-4],47: a += (a++);0040D7BF mov eax,dwo原创 2013-03-26 21:07:28 · 1200 阅读 · 0 评论 -
C语言“字符串-数字”之间的转换
http://www.cplusplus.com/reference/cstdlib/定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分转载 2013-04-24 23:20:55 · 1171 阅读 · 0 评论