IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言高级-C内核 -> 正文阅读

[C++知识库]C语言高级-C内核

本博客参考《嵌入式Linux与物联网软件开发C语言内核深度解析》

对于单片机而言,C语言程序内存是用来存储可变数据(变量)的,常量存储在flash当中。

对于内存:

? ? ? ? C无操作系统:通过编译器提供的变量名来管理内存(编译器会将变量名与给其分配的内存首字节地址绑定),函数名(指针)本质也是一个内存地址,定义数组就是一次性定义一堆变量(第一个变量a[0]的地址记录在数组名a中),结构体为聚合数据类型,一般传递结构体变量的指针来操作结构体。

? ? ? ? C有操作系统:静态内存分配,动态内存分配:使用API,例如?malloc free接口

? ? ? ? C++:new对象分配内存,delete删除对象

? ? ? ? Java/C#:虚拟机

? ? ? ? 分类:静态内存SRAM,动态内存DRAM

? ? ? ? 特点:可以随机访问

三总线:地址总线、数据总线、控制总线(地址总线位数决定内存的大小2^N次方)

? ? ? ? 1GB=1024MB? 1MB=1024KB? 1KB=1024B? 1B(字节)=8bit(位)

????????内存编址以字节为单位

? ? ? ? 数据类型的本质是一个内存格子(存放数据值)长度解析方法

?栈stack:

????????作用:用来保存非静态局部变量,将局部变量放入栈中(入栈),释放局部变量(出栈)(两操作由背后的运行时系统自动完成),在程序运行过程中跳转函数要通过栈来保存和恢复现场。

? ? ? ? 特点:小内存、自动化;先进后出;栈的大小可以设定的。

堆heap:

? ? ? ? 作用:需要的内存容量比较大时,动态申请存储大容量数据,比如链表。

? ? ? ? 特点:大内存、手工分配/使用/释放

静态存储区:

? ? ? ? 作用:存放静态局部变量和全局变量

? ? ? ? 特点:随程序运行而分配空间,直到程序运行结束才释放释放空间。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:02:42  更:2022-07-17 16:03:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 20:42:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码