zoukankan      html  css  js  c++  java
  • 嵌入式学习笔记_知识点

    嵌入式学习笔记_知识点

    DRAM和SRAM的区别

    两者都是随机存取器的一种,上电数据保持,掉电数据消失,不同的是,DRAM需要周期性的更新,SRAM不需要。

    CPU数据总线、地址总线、位数与内存大小的关系

    cpu的位数是指数据总线的位数,一般来说cpu的数据总线与地址总线相同,cpu的寻址范围为2exp(地址总线数),如32位cpu代表有32根数据总线,32根地址总线,则寻址范围为2exp32=4G,故32位cpu对应内存最大为4G,64位cpu为16G。

    位和字节

    内存单元的大小单位:位(1bit),字节(8bit)。特别注意,字、半字、双字这些单位具体有多少位是依赖于平台的定义,没有通用的定义。

    内存编址

    内存单元包含地址和空间,一个内存地址对应的空间是固定的,为一个字节(8bit),这也是字节的起源。

    内存对齐

    分配硬件上连续的内存为对齐访问,否则为非对齐访问,对齐访问效率更高。

    c语言中数据类型、函数名的本质

    数据类型代表占内存单元的数量和解析方式,函数名代表一段代码的内存首地址。

    C语言中数据类型的强制转换

    本质上是改变该变量的内存单元数量以及解析方式,内存单元中保存的bit信息不变。

    c语言指针变量和普通变量

    两者区别只在于普通变量保存数值,指针变量保存地址,如:

    int *a; //假如编译器分配变量a的内存地址0x00000000

    表示0x00000000开始的4字节中存储了1个地址,该地址往后的4个字节中存储着int类型的整数,第一个4字节表示内存地址的大小,第二个4字节表示int类型的大小。

    c语言结构体内嵌指针实现面向对象

    struct node
    {
    	int var;				//普通变量
    	void (*pFunc)(void);	//函数指针
    }
    

    c语言堆内存与栈内存

    栈内存:自动申请、自动释放;内存空间反复使用,需要初始化;栈内存有上限,容易溢出,适用于局部变量;

    堆内存:手动申请、手动释放;不释放使用完毕的内存会造成内存泄露,程序崩溃;内存空间大,适用于存储大量数据。

  • 相关阅读:
    无法将类型“XXX”隐式转换为“XXX[]”(Cannot implicitly convert type 'XXX' to 'XXX[]')
    VS2010验证时出错。HRESULT = '8000000A'
    Linux Command Tips
    RealVNC 使用手册
    PL/SQL Developer自动补全SQL技巧
    Install dnsutils(dig, nslookup, host) On iPhone
    asp.net压缩图片
    Discuz论坛密码加密方式详解
    三种SQL分页法效率分析
    Mysql数据库服务器配置文件/etc/my.cnf的详细配置
  • 原文地址:https://www.cnblogs.com/sakurapiggy/p/13021157.html
Copyright © 2011-2022 走看看