美文网首页
知识杂记

知识杂记

作者: 我帅的不忍直视 | 来源:发表于2020-02-15 09:46 被阅读0次

1.    虚函数

https://www.linuxidc.com/Linux/2019-01/156152.htm

https://blog.csdn.net/li1914309758/article/details/79916414

多继承中,基类有虚函数的内存布局靠前,然后按照定义顺序排列

多继承会有多个虚表指针,64位机每个虚表指针大小为8字节

2.    内存布局

https://coolshell.cn/articles/12176.html

3.    模板元编程

#include

usingnamespace std;

template 

structFactorial

{

    enum {value = n +Factorial::value};

};

template<>

structFactorial<0>

{

    enum{value = 0};

};

intmain()

{

    int o = Factorial<0>::value;

    int v = Factorial<1>::value;

    int t = Factorial<2>::value;

    cout<

    std::cout<

    return 0;

}

4.      栈(stack):函数内声明的自动变量,函数参数;栈是向低地址扩展的数据结构,是一块连续的内存的区域,大小Windows默认2M,Linux默认8M,均可修改配置。

静态区:静态变量,全局变量,由系统内存大小限制

文字常量区:常量字符串就是放在这里的, 程序结束后由系统释放。

程序代码区:存放函数体的二进制代码。

堆(heap):new,malloc由用户申请的,高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表 的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。

5.      volatile:volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,告诉编译器对该变量不做优化,都会直接从变量内存地址中读取数据,从而可以提供对特殊地址的稳定访问。。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。(简洁的说就是:volatile关键词影响编译器编译的结果,用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错)

栈速度比堆快:

https://www.jianshu.com/p/27c0fc1aecab

mutable:一个结构体或类变量为const,但声明为mutable的变量也可以被修改

c++: 构造函数初始化,比赋值效率高,因为赋值需要先初始化,再赋值,多一步操作

相关文章

  • 知识杂记

    1. 虚函数 https://www.linuxidc.com/Linux/2019-01/156152.ht...

  • 杂记小知识

    获取授权通知 iOS系统版本判断 OC *Swift

  • ios知识杂记

    1.Objective-C为一门动态语言 Objective-C基于动态与形式类型,而C++基于静态类型。也就是说...

  • 小知识杂记

    ./node_module/.bin/eslint --versionbin文件下的文件为可执行文件 npx es...

  • 网络知识杂记

    个人总结的一张网络知识体系的架构图,将会持续更新 需要脑图原件的可以加我微信

  • Android知识杂记

    关于LayoutInflater inflate方法 root attachToRoot 参数详解[https:/...

  • iOS知识小杂记

    1、根据label的宽高,自适应文字的大小,让文字整个填充label label.numberOfLines = ...

  • 《易经》杂记

    《易经》杂记 前两天写的一点关于易经的小知识,得到了好多朋友的关注,今天我把《易经》的一些具体小知识详细和大家分享...

  • 2018-12-01

    练车杂记

  • 学琴杂记

    学琴杂记 一 很小...

网友评论

      本文标题:知识杂记

      本文链接:https://www.haomeiwen.com/subject/xfzibctx.html