嵌入式软件基础知识——1

目录

C语言中堆和栈的区别

局部变量和全局变量

指针数组、数组指针、指针函数、函数指针

什么时候使用线程和进程

三次握手

const和#define相比有哪些优点

封装、继承和多态

父进程和子进程

C语言中堆和栈的区别

         存储内存不同。

         管理方式不同。

         空间大小不同。

        能够产生碎片不同。

        生长方向不同。

        分配方式不同。

        分配效率不同。

局部变量和全局变量

          在内存管理里面,全局变量放在静态区,局部变量在栈上面去申请空间,

指针数组、数组指针、指针函数、函数指针

         指针数组本质是一个数组,它的每一个成员都是一个指针。

         数组指针本质是一个指针指向一个数组,相当于它的一个指针里存的都是数组的首地址。

        指针函数本质是一个函数,它的一个返回值是一个指针类型。

        函数指针本身是一个指针,它指向的是一个函数,相当于这个指针存储的是函数的首地址。

什么时候使用线程和进程

        进程是操作系统分配资源的基本单位,线程是操作系统调度的基本单位。一个进程中至少包含一个线程,线程不能独立于进程而存在,进程不能共享资源,而线程是可以的。线程可以看做是轻量级的进程,他们的关系可以从这些角度看,从属关系,共享资源,上下文切换的速度和操作对象的不同。

        一个进程创建线程的数目,由可用的虚拟空间和线程的栈的大小共同去决定,只要虚拟空间足够,这个线程就可以创建成功。理论上一个进程可用的虚拟空间大小事2G,默认情况下,一个线程可用的栈空间大小是1MB,所以理论上最多只能创建的线程个数是2048个,如果想要去创建多余2048个线程的话,就需要去修改编译器的设置。如果要创建2k以上个数的线程,就需要减少线程栈的大小,一般情况下不需要这么多的线程。

      当频繁创建和销毁的时候要用线程,创建一个进程要比创建一个线程的代价高出很多,而且耗时的操作使用线程可以提高应用程序的响应速度。并行操作的时候使用线程。考虑数据安全性的时候选用进程。提高单核CPU利用利用线程,多核分布要用进程。

三次握手

      是客户端向服务器建立连接的过程,第一次握手客户端向服务器发送SYN包,等待服务器的确认。第二次握手,服务器收到SYN包并回复客户端SYN加ACK包。第三次握手,客户端收到服务器的SYN加ACK包,并向服务器发送ACK确认包。这样TCP连接成功,完成三次握手。

const和#define相比有哪些优点

       const是用于定义常量的关键字,#define是一个预处理指令,处理的阶段是不同的,const常量可以有数据类型,而宏常量没有数据类型,分析器对const进行类型安全检查只进行字符替换,没有类型安全检查容易引起类型错误。const根据使用位置有不同的作用域。

封装、继承和多态

        封装:是实现面向对象程序的第一步,就是将数据或者函数等集合在一个个的单元中(我们称为“类”),封装的意义在于保护或者防止代码(数据)被无意中的破坏。

        继承:主要实现复用代码,节省开发时间。子类可以继承父类的一些属性和功能。

        多态:是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行的时候可以通过指向基类的指针来调用实现派生类当中的方法。

父进程和子进程

        父进程调用fork()函数后,克隆出一个子进程,子进程和父进程拥有相同的内容和代码段/数据段和用户堆栈。父进程和子进程,谁先执行是不一定的,要看CPU的调度,所以一般会设置父进程等待子进程执行完毕后再执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/168724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter使用beanshell

1.使用jar包需要将依赖和脚本放在安装路径下的lib/ext中,这样可以避免很多问题产生 pip3 install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com allure_pytest-2.13.2-py3-none-any.whl 通过docker安装的Jenkins容器 需要再Jenkins…

ElasticSearch之cat anomaly detectors API

curl -X GET "https://localhost:9200/_cat/ml/anomaly_detectors?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下: curl -X GET "https://localhost:9200/_cat/ml/ano…

Java核心知识点整理大全13-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

深入ReentrantReadWriteLock(二)

四、读锁分析 4.1 读锁加锁流程概述 1、分析读锁加速的基本流程 2、分析读锁的可重入锁实现以及优化 3、解决ThreadLocal内存泄漏问题 4、读锁获取锁自后,如果唤醒AQS中排队的读线程 4.1.1 基础读锁流程 针对上述简单逻辑的源码分析 // 读锁加锁的方法入口 pub…

激光雷达报告:单月上车提前突破5万台关口!车企真实搭载「去伪存真」

高工智能汽车研究院监测数据显示,截至2023年9月,激光雷达已经连续2个月交付破5万台关口。 这也意味着,这一交付关口早于预期被突破。回溯来看,2023年6月,高工智能汽车研究院在第十四届智驾开发者大会上释放预测&#…

战地5无限序章(无法保存)的解决办法

启动游戏后,目录就会自动变成这样了,也不会无限循环了!

C++类与对象(5)—流运算符重载、const、取地址

目录 一、流输出 1、实现单个输出 2、实现连续输出 二、流输入 总结: 三、const修饰 四、取地址 .取地址及const取地址操作符重载 五、[ ]运算符重载 一、流输出 1、实现单个输出 创建一个日期类。 class Date { public:Date(int year 1, int month 1,…

践行“互联网+中药服务”理念,华润煎配中心打造智能代煎新模式

移动互联网时代,“互联网+”浪潮迭起,中药企业开始探索“互联网+中药服务”模式。 华润湖南医药有限公司(以下简称“华润湖南医药”)作为华润集团旗下华润湖南医药商业集团全资控股的大型医药企业&#xff…

SOEM主站开发篇(4):为APP程序添加人机交互功能

0 工具准备 1.SOEM-1.4.0源码(官网:http://openethercatsociety.github.io/) 2.Linux开发板(本文为正点原子I.MX6U ALPHA开发板) 3.交叉编译工具(arm-linux-gnueabihf-gcc) 4.cmake(版本不得低于3.9,本文为3.9.2) 5.Ubuntu 16.04(用于编译生成Linux开发板的可执行文…

Linux C++网络编程-王健伟

文章目录 1-1课程详细介绍1-2环境搭建详细介绍2-1nginx简介、选择理由、安装和使用2-2nginx整体结构、进程模型3-1学习nginx源码前的准备工作3-2nginx源码学法,终端和进程的关系说3-3信号的概念、认识、处理动作3-4Unix/Linux体系结构、信号编程初步3-5信号编程进阶…

你听过斯大林病毒吗?

相信不少小伙伴看过这种红眼特效,那么你知道这个特效最早出自哪里吗? 其实这个红眼病毒最早出于俄罗斯的电脑病毒斯大林,一旦电脑感染这个病毒,屏幕上就会出现自带一个红眼特效的斯大林人像,同时不断播放苏联国歌。 …

​Spring Boot 分片上传文件

在文件上传功能上,客户经常会问到文件上传大小的是否有限制或是上传大小能否设置,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上传大文件过程中进行优化实时展现进度条, 进行技术评估后针…

基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码

基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于侏儒猫鼬优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

关于提示SLF4J: Class path contains multiple SLF4J bindings的问题解决

今天搭建hbase的时候启动hbase的时候shell面板输入了一大堆日志,如下: stopping hbase.....................SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/software/hadoop-3.1.3/share/hadoop/common/l…

孩子学习过程中一些代码记录

用到的头文件 #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> 基本输出 int Jntm(int aAge, int aHeight) {printf("10年后您的年龄是:%d岁, 身高是%d厘米.\r\n", aAge 10, a…

hdlbits系列verilog解答(exams/m2014_q4f)-47

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 实现以下电路&#xff1a; 二、verilog源码 module top_module (input in1,input in2,output out);assign out in1 & (~in2);endmodule三、仿真结果 转载请注明出处&#xff01;

关于配置文件中秘钥信息加密实现方案的一些思考(TODO)

关于配置文件中秘钥信息加密实现方案的一些思考 背景实现方案TODO 待实现类似资料 背景 配置信息文件中(代码中), 不应该有明文的秘钥信息. 需要找一种方案去做加密处理. 实现方案 我们可以在项目指定目录上传一份加密/解密程序, 例如: jasypt-gui.jar. 启动时: 配置JVM参数…

Vue 或者 React 中,什么情况下会用 Es6 的 Class类

// 问个问题&#xff0c;一般在 Vue 或者 React中 // 在框架具备很多组件通讯技术或者js语法支持的情况下&#xff0c;什么情况下会用 Es6 的 Class类&#xff1f;在Vue或React中&#xff0c;通常会在以下情况下使用ES6的Class类&#xff1a; 复杂组件或模块: 当需要构建较为复…

实验题【网关设置+VRRP+静态路由+OSPF】(H3C模拟器)

嘿&#xff0c;这里是目录&#xff01; ⭐ H3C模拟器资源链接1. 实验示意图2. 要求和考核目标3. 当前配置3.1 PC1、PC2、PC3、PC4和PC5配置3.2 SW配置3.2.1 SW2配置3.2.2 SW3配置3.2.3 SW4配置3.2.4 SW1配置 3.2. R配置3.2.1 R1配置3.2.2 R2配置 ⭐ H3C模拟器资源链接 H3C网络…

篮桥云课-摆玩具

思维好题 一开始掉进了二分的陷阱&#xff0c;发现看看逐个位置的差&#xff0c;我们要分成k段就是要取消k-1个最大的逐差 然后将剩余的加起来就可以了 因为本体保证是从小到大给出的 这一点保证了答案的正确性&#xff0c;自己没想出来 还是太菜了 #include<bits/stdc.h&…