C/C++
看书笔记、问题收录
gdut_llkkyy
这个作者很懒,什么都没留下…
展开
-
关于内存对齐问题的一些资料整理
我们的讨论从一道经典的题目开始:Intel和微软同时出现的面试题#pragma pack(8)struct s1{char a;longb;};struct s2{char c;s1 d;long long e;};#pragma pack()问1.sizeof(s2) = ?2.s2的c后面空了几个字节接着是d?经上机测试,sizeof(s2)=24...原创 2011-08-22 16:20:00 · 121 阅读 · 0 评论 -
编译器为C++ 空类自动生成的成员函数
在下列四种函数没有显式声明时,编译器将会自动生成:(1)缺省构造函数;(2)缺省拷贝构造函数;(3)缺省析构函数;(4)缺省赋值运算符;(5)缺省取址运算符;(6)缺省取址运算符 const...原创 2012-08-18 09:52:00 · 80 阅读 · 0 评论 -
利用C++编译器查找C程序中很隐蔽的错误的一个例子
/*file1.c*/#include<stdio.h>void f(int i){ printf("%d",i);} /*file2*/#include<stdio.h>void f(char c);int main(){ f('c'); return 0;}函数 vo...原创 2012-08-09 14:04:00 · 114 阅读 · 0 评论 -
C++ 的类型转换方法
1、C风格类型转换。用括号把要转换的数据类型括起来放在值的左边。这个值可以是一个变量、常量、由一个表达式产生的值或是一个函数返回值。例如:int b=200;unsigned long a=(unsigned long int )b;2、类似于函数调用,给参数加上括号而不是给数据类型加上括号int i=200;float a= float(i)...原创 2012-08-03 14:02:00 · 140 阅读 · 0 评论 -
一个简单函数的C代码和汇编代码
int exchange(int *xp,int y){ int x=*xp;*xp=y;return x;}省略了栈的建立和完成部分的汇编代码如下://xp at %ebp+8,y at %ebp+121 movl 8(%ebp),%edx2 movl (%edx),%eax3 movl 12(%ebp),%ec...原创 2011-08-19 22:58:00 · 226 阅读 · 0 评论