关闭

C语言内存分配(详细解说)

要想完全理解C语言的内存分配,必须要知道计算机的组成和基本原理。1. 计算机的组成计算机的五大组成部分:运算器、控制器、存储器、输入设备和输出设备。我们都知道计算机的处理中心是CPU,它主要由运算器和控制器组成。1.运算器实现算术运算和逻辑运算的部分,主要对数据进行加工处理。2.控制器计算机的指挥中心,它通过地址访问存储器,从存储器中取出指令(程序),并指出下一指令在存储器中的位置,将取出的指令经指...
阅读(41) 评论(0)

堆和栈的区别

1. 申请方式 栈(satck):由系统自动分配。例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间。 堆(heap):需程序员自己申请(调用malloc,realloc,calloc),并指明大小,并由程序员进行释放。容易产生memory leak. eg:char p; p = (char *)malloc(sizeof(char)); 但是,p本身是在栈中。 2....
阅读(26) 评论(0)

MCU编译与运行浅谈

学电子的人都知道:使用C语言编写代码后,我们必须将其处理成机器码,才能使之在MCU中执行,这其中的步骤基本概括为“编译->汇编->链接->加载->启动”。  编译和汇编很容易理解,不是我想讲解的重点,这里主要讲“链接->加载->启动”三部分,我会尽量使用浅显的文字进行概括性阐述。很多电子工程师做了半辈子MCU可能还不能完全理解这三部分,不是说这些工程师们脑残,而是即使他们不搞懂这些也不影响他...
阅读(173) 评论(0)

存储空间分配问题.笔记

图片00 IROM1: 0x80000000,flash的起始地址 0x80000000~0x80002000,合计8k的空间,bootloader程序 0x80002000~0x80040000,合计256k的空间,256k的flash IRAM1: 0x20000000~0x20010000,合计64k的空间,运行内存 ROM主要指:NAND Flash,Nor Flash...
阅读(53) 评论(0)

浅谈嵌入式MCU开发中的三个常见误区

目录 嵌入式MCU与MPU的区分 误区一:MCU的程序都是存储在片上Flash上,然后拷贝到RAM中执行的 误区二:工程编译生成的下载文件大小即为最终占用Flash的大小 误区三:用户应用工程的编译结果建议不能超过MCU片上Flash的80% 嵌入式MCU与MPU的区分 嵌入式系统中的处理器按照是否集成片上Flash和RAM可以分为MCU(Micro Control...
阅读(109) 评论(0)

ROM、RAM、Flash的区别

关键的一些名词: PROM,EPROM,EEPROM,SPD,SRAM,DRAM,RDRAM,SDRAM,DDRSDRAM,NORFlash,NADNFlash,HDD,SSD,SLC,MLC,TLC,eMMC,USF2.0 一、 ROM(Read Only Memory)     ROM(Read Only Memory),只读存储器。用来存储和保存数据。ROM数据不能随意更新,但...
阅读(28) 评论(0)

QT编程基础的一些介绍

1  什么是QT          基于C++语言的框架          一个专注于图形用户界面的框架          一个跨平台的框架          一个艺术级别的开发的工具           2  历史         05年  qt4.0         08年  被nokia收购         09年  开源                  qt-pro...
阅读(90) 评论(0)

Qt学习之路(1):前言

Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“伟大的C++库”。 我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不同:GUI并不是C++标准的一...
阅读(62) 评论(0)

Qt下载地址

上Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址: 1. 所有Qt版本下载地址: http://download.qt.io/archive/qt/ 2. 所有Qt Creator下载地址: http://download.qt.io/archive/qtcreator/ ...
阅读(66) 评论(0)

王者荣耀:从程序员的角度解密王者荣耀,专业术语把院长看懵了

农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。 当然了,作为技术人,更愿意从技术上了解去一些王者荣耀的实现原理和架构方式,从中找到新的知识领域,扩展自己的知识边界,丰富自己的专业技能。借助...
阅读(504) 评论(0)

C++面向对象模型初探

C++中的class从面向对象理论出发,将变量(属性)和函数(方法)集中定义在一起,用于描述现实世界中的类。从计算机的角度,程序依然由数据段和代码段构成。 C++编译器如何完成面向对象理论到计算机程序的转化?换句话:C++编译器是如何管理类、对象、类和对象之间的关系?具体的说:具体对象调用类写的方法,那c++编译器是如何区分,是那个具体的类,调用这个方法呢? 我们先看下面一段代码: ...
阅读(90) 评论(0)

new/delete和malloc/free的区别深入解析

1. malloc()函数 1.1 malloc的全称是memory allocation,中文叫动态内存分配。 原型:extern void *malloc(unsigned int num_bytes);  说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。 1....
阅读(131) 评论(0)

C++对象的动态建立与释放详解(new和delete)

我们知道可以用new运算符可以动态的分配内存,用delete运算符可以释放这些内存。当我们使用new运算符动态的分配一个内存之后,会自动返回一个该内存段的起始地址,也就是指针。 =============下面先给出一个new和delete基本应用的例子,回顾一下它的基本用法============ #include using namespace std; int main() {...
阅读(112) 评论(0)

命名空间namespace的概念和使用

为什么需要命名空间(问题提出)     命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。    在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。     在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。   1、全局变量的作用域是整个...
阅读(151) 评论(0)

面向对象和面向过程的区别

面向对象:用线性的思维。与面向过程相辅相成。在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统。微观上,仍然使用面向过程。 “面向过程”是一种是事件为中心的编程思想。就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用。   ”面向对象“是以“对象”为中心的编程思想。     简单的举个例子:汽车发动、汽车到站。汽车启动是一个事件,汽车到站...
阅读(121) 评论(0)
108条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:57022次
    • 积分:1029
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:65篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论