c++ 杂谈 3
结构体
struct定义的结构体
struct Student
{
char name[6];
int age;
Score s;
};
使用union定义联合体
union Score
{
double sc;
char level;
}
所谓联合体就是 double和char共同使用同一个空间,所以虽然一个是8字节一个是1字节,但是一共还是只有8个字节,取得是最大的一块
因此,其内存布局应该是这样的
顺序不同对于内存开销也会不一样
综上总结数据对齐——缺省对齐原则:
32位CPU:
char:任何地址
short:偶数地址
int:4的整数倍的地址
double:8的整数倍的地址
命名空间
命名空间定义了上下文,其本质上定义了一个范围;但是有可能会产生冲突
函数体
包含一组定义函数执行任务的语句
函数体的hack过程
进行反汇编,得到汇编代码如下:
ebp esp 等都是寄存器
内联(inline)函数,解决程序效率问题
就是不用考虑他的压栈的过程或者 出栈的过程
在函数体中加上inline,内联不适合在递归上进行调用
递归
字符串的重载 使用operator关键字
对于自己定义的一个类complex做加法操作
Complex::operator+,代表+在complex类里面使用
版权声明: 本文为 InfoQ 作者【菜鸟小sailor 🐕】的原创文章。
原文链接:【http://xie.infoq.cn/article/f30288840316dc04726d5421f】。文章转载请联系作者。
评论