• C语言高级第一节杂谈


    计算机程序 = 代码 + 数据

    代码是动作,数据是数字

    程序运行的目的:结果,过程

    冯洛伊曼结构和哈佛结构

    冯洛伊曼结构:数据和代码放在一起。

    哈佛结构:数据和代码分开存放。

    核心点:存放介质是否相同。

    在S5PV210的linux系统中,数据和代码存放在DRAM中,属于冯偌依曼结构。

    在一般单片机中,代码在Norflash(外存)中,数据存放在ram(内存)中。属于哈佛结构。

    内存管理方法

    (1)操作系统和裸机:

    操作系统:使用API管理。

    裸机:直接操作内存。

    (2)语言角度来说:

    汇编:操作内存直接使用地址。

    C语言:编译器帮忙管理,通过变量名。如果需要大量内存,在OS中,用malloc,在裸机中,用数组等数据结构。

    内存编址模型

     把内存看成一栋楼,内存中的单元格好像大楼中一个一个的小房间,

    一层有4个房间(32位系统),每个房间有一个编号(地址)每个房间可以

    1个字节(内存编址以字节为单位)

    最简单的数据结构:数组

    注意:数组的定义是一定要是指明首地址和长度的。变量名代表首元素首地址

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

    1 struct s
    2 {
    3     int age;                         
    4     void (pfunc*)(void)        
    5 }

    age 相当于class中的成员,用一个函数指针指向一个void func(void)的函数,函数

    类似于class中的方法,则可以实现面向对象。

    四种栈

    空栈:栈指针指向空位,每次存入直接存入然后栈指针移动一格,每次取出则先移动一个才能取出

    满栈:栈指针指向栈中最后一格数据,每次存入需要先移动栈指针一格再存入,取出直接取出,然后在移动栈指针

    增栈:栈指针移动时向地址增加的方向移动的栈

    减栈:栈指针移动时向地址减少的方向移动的栈

    需要防止栈溢出,不能定义太多局部变量。

    链表简介

    链表是由一个一个节点组成,一个节点包括2个指针,前指针和后指针,前指针指向前一个节点,后指针

    指向后一个节点,这样就把一个一个节点连接起来了。

    以上比较杂的知识点来自朱老师物联网大讲堂,是自己重复看第二遍的一些不太懂的知识

    点。

     

  • 相关阅读:
    澳洲中产收入水平[转]
    [转载]在澳洲做IT人士的收入差别
    取消excel 工作保护 密码的宏
    SAP ML 物料分类账详解(含取消激活物料帐方法)
    ABAP--如何创建自定义打印条码
    SAP 产品条码WMS结合 以及ABAP script的集成 BarCode
    SAP 以工序为基准进行发料 机加工行业 Goods Issue to Routing
    SAP HR模块的基础数据表和增强配置
    SAP财务供应链与金库管理的联系与区别
    评点SAP HR功能及人力资源管理软件
  • 原文地址:https://www.cnblogs.com/zou27/p/4983649.html
Copyright © 2020-2023  润新知