嵌入式软件八股文

1.指针的大小是固定的,和指针的类型没有关系

              只与编译器有关,32位系统指针大小为8个字节,x64一般为64位系统,指针大小一般为4个字节。

2.sizeof()和strlen()

sizeof()计算所占内存的大小,可以计算int float大小

strlen()计算的是字符串长度,不会计算字符串末尾添加的'\0';

字符串以'\0'结尾,\0是不需要计算长度的strlen('\0') = 0的, sizeof("\0") = 2

3.c语言内存分配的方式

1.静态存储区分配,定义全局变量,静态变量

2.栈上分配       局部变量定义在栈中

3.堆上分配        动态变量定义在堆中(malloc, new)

4.结构体和联合体的区别

   union和struct的区别

union联合体:成员共享一块地址

共用体大小 = 成员中占内存最大的成员大小

struct结构体:不同的成员放在不同地址中。

结构体大小 = 所有成员大小之和(字节对齐) 根据编译环境判断是四字节对齐还是八字节对齐

5.宏,写一个宏返回输入参数比较小的一个

#define MIN(a,b)    ((a) > (b) ? (b) : (a))

6.#include <> 和#include“”

<>是在标准库路径搜索,

“”会从用户工作路径搜索,对于自己定义的文件,""会比较快

6.全局变量和局部变量区别

1.作用域,全局变量作用域为程序块,局部变量的作用域是函数内部

2.生命周期:全局变量  ,局部变量生命周期是当前函数

3,存储方式,局部变量存在栈里面,全局变量存在全局数据区中

7.内存泄漏和内存对齐

在程序运行时候,动态分配的空间没有被回收或是正确释放,导致这个内存空间还占用着系统资源,这个就叫内存泄漏

内存对齐:在存储数据时,将数据按照一定的规则放置在内存中的过程

结构体中

8.堆和栈的区别

1.创建方式不同,栈是系统自动创建,(主要用于保存局部变量,函数执行完成,栈被销毁),堆是程序员手动进行创建和释放的,malloc进行创建,free进行释放,

2,栈当使用完后,自动销毁,堆是由程序员手动销毁

9,malloc和new

malloc是c语言标准库函数(分配内存后返回void*)类型指针,使用malloc分配内存时候需要指定分配内存大小,

使用new进行内存分配返回对应对象类型的指针,使用new进行内存分配不需要指定,使用malloc分配内存的时候不会调用构造函数,使用new分配内存的时候会调用构造函数

10.SPI有几根线

spi有四根线, SCLK:时钟线, MOSI:主设备输出,MISO,主设备输入,从设备输出, CS:片选线,        //不需要进行双向通信,MOSI,MISO其中一根线去除   //CS:只进行一对一通信的时候

11.TCP和UDP区别

TCP是可靠连接可靠传输,三次握手        TCP是面向连接的通信方式

UDP是无连接不可靠通信          UDP是不需要连接

UDP比TCP传输速率块,有可能会丢包    UDP:视频,在线游戏,直播

12.SPI和IIC的寻找区别

SPI(4根线,MISO,MOSI,SCLK,CS片选引脚)寻址:CS片选引脚拉低,选择对应的设备进行通信

IIC寻址方式:(SDA,SCL) 通过从机地址来进行寻址(7位,10位从机地址)

13.什么是交叉编译

交叉编译指的是在一个平台上编译出另外一个平台的可执行程序

ARM开发板.c .h不能拷贝ARM开发板,ubuntu使用交叉编译链,.c->可执行程序

14.UART, IIC和SPI区别

UART采用异步通信,没有时钟线,IIC和SPI采用同步通信,有时钟线

IIC起始信号,SDA和SCL是高电平,SDA拉低,SCL再拉低。

IIC停止信号,SDA和SCL是低电平,首先SCL拉高,SDA拉高。

15.僵尸进程,孤儿进程

使用fork()创建子进程后,如果子进程退出,父进程没有调用wait()或者waitpid()回收子进程占用的资源,  需要调用

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

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

相关文章

美畅物联丨物联网通信新纪元:Cat.1与5G RedCap的差异化应用

​ 在物联网&#xff08;IoT&#xff09;迅猛发展的时代&#xff0c;通信标准对物联网设备的连接性、性能和适用性有着极为关键的作用。小编在《美畅物联丨Cat.1与NB-IoT&#xff1a;物联网设备的通信标准对比》中提到Cat.1与NB-IoT的对比区别&#xff0c;后来就有小伙伴问&…

vue用jenkins 打包项目项目关闭eslint检查

问题描述&#xff1a;创建vue脚手架项目后&#xff0c;使用jenkins 打包项目&#xff0c;出现如下图所示错误&#xff0c;显示错误来源于eslint检测。 解决方法&#xff1a;在根目录下找到vue.config.js文件&#xff0c;添加lintOnSave: false以关闭eslint检测&#xff0c;项目…

序列中删除指定数字【四种解法】

文章目录 解法1&#xff1a;另辟空间法解法2&#xff1a;覆盖法解法3&#xff1a;覆盖法&#xff08;进阶版&#xff09;解法4&#xff1a;异或取巧法 题目&#xff1a;有一个整数序列&#xff08;可能存在重复的整数&#xff09;&#xff0c;编写程序删除序列中指定的某一个整…

【07】Maven项目多环境打包配置

&#xff08;1&#xff09;Web项目使用Maven进行多模块划分开发之后&#xff0c;面临一个问题&#xff0c;即如何加载不同环境的配置文件打包发布到不同的环境中&#xff1f; &#xff08;2&#xff09;不同的环境有开发环境、测试环境、线上生产环境等。 &#xff08;3&#x…

机器学习—前向传播的一般实现

可以写一个函数来实现一个密集的层&#xff0c;那是神经网络的单层&#xff0c;所以定义稠密函数&#xff0c;它将上一层的激活作为输入以及给定层神经元的参数w和b。看下边图片所展示的例子&#xff0c;把所有这些权重向量堆叠成一个矩阵&#xff0c;wnp.array([[1,-3,5][2,4,…

濮良贵《机械设计》第十版课后习题答案全解PDF电子版

《机械设计》(第十版)是“十二五”普通高等教育本科国家级规划教材&#xff0c; 是在《机械设计》(第九版)的基础上修订而成的。本次修订主要做了以下几项工作&#xff1a; 1. 内容的适当更新——自本书第九版出版以来&#xff0c; 机械工程及相关领域的新理论、新技术和新标准…

1分钟解决Excel打开CSV文件出现乱码问题

一、编码问题 1、不同编码格式 CSV 文件有多种编码格式&#xff0c;如 UTF - 8、UTF - 16、ANSI 等。如果 CSV 文件是 UTF - 8 编码&#xff0c;而 Excel 默认使用的是 ANSI 编码打开&#xff0c;就可能出现乱码。例如&#xff0c;许多从网络应用程序或非 Windows 系统生成的 …

曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%

本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》&#xff0c;杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。 曹操出行&#xff1a;科技驱动共享出行未来 曹操…

【研究生必备】如何利用AI论文生成器免费提升效率?

在研究生阶段&#xff0c;写论文往往是学业中最具挑战性的部分之一。 面对繁重的文献阅读、复杂的分析和紧迫的时间限制&#xff0c;很多同学都感到压力倍增。不过&#xff0c;随着科技的发展&#xff0c;AI论文生成器的出现为我们提供了一种全新的解决方案。今天&#xff0c;…

Android无限层扩展多级recyclerview列表+实时搜索弹窗

业务逻辑&#xff1a; 点击选择&#xff0c;弹出弹窗&#xff0c;列表数据由后台提供&#xff0c;不限层级&#xff0c;可叠加无限层子级&#xff1b; 点击item展开收起&#xff0c;点击尾部icon单选选中&#xff0c;点击[确定]为最终选中&#xff0c;收起弹窗&#xff1b; 搜索…

写作 | 人工智能在师生教学场景中的应用前景

正文 本文讨论人工智能在师生教学场景中的应用前景。在开展论述前&#xff0c;首先需要明确一些概念。 第一&#xff0c;什么是人工智能&#xff1f;人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c; 字面意义&#xff0c;即人工制作的智慧能力。这种智慧…

Java线程6种生命周期及转换

多线程技术是我们后端工程师在面试的时候必问的一个知识点&#xff0c;今天就来盘点一下多线程的相关知识&#xff0c; 先来说下进程&#xff0c;线程及线程的生命周期&#xff1a; 进程&#xff1a;进程就是正在进行中的程序&#xff0c;是没有生命的实体&#xff0c;只有在运…

美格智能5G车规级通信模组: 5G+C-V2X连接汽车通信未来十年

自2019年5G牌照发放开始&#xff0c;经过五年发展&#xff0c;我国5G在基础设施建设、用户规模、创新应用等方面均取得了显著成绩&#xff0c;5G网络建设也即将从基础的大范围覆盖向各产业融合的全场景应用转变。工业和信息化部数据显示&#xff0c;5G行业应用已融入76个国民经…

GooglePlay: 应用和游戏的内容分级

对于后台私信的开发者们,希望能够携带详细过审记录和拒审邮件一同发来,方便我们尽快解决问题 应用与游戏 为您的应用或游戏选择类别和标签选择要添加的标签选择类别并添加标签类别示例与应用、游戏以及两者中所投放广告的内容分级相关的要求应用如何获得内容分级内容分级的用…

多线程--模拟实现定时器--Java

一、定时器的概念 定时器的本质就是一个闹钟&#xff0c;时间到了开始执行某些逻辑。Java标准库中的定时器是Timer。 我们查阅Java文档可以详细看到定时器的使用方法&#xff1a; Timer最核心的方法就是schedule方法。值得注意的是我们通常描述任务是使用Runnable来描述&…

Docker 镜像体积优化实践:从基础镜像重建到层压缩的全流程指南

​ 由于最近在发布的时候发现docker镜像体积变得越来越大&#xff0c;导致整个打包发布流程变得非常耗时了。所以又接到一个差事&#xff0c;优化最终镜像体积。顺便也记录一下docker镜像体积优化的一些步骤。 大概步骤可以分为以下几个步骤&#xff1a; 重做基础镜像&#x…

[linux 驱动]PWM子系统详解

目录 1 描述 2 结构体 2.1 pwm_chip 2.2 pwm_ops 2.3 pwm_device 2.4 pwm_class 3 相关函数 3.1 注册与注销 PWM 控制器 3.1.1 pwmchip_add 3.1.2 pwmchip_remove 3.2 申请与释放 PWM 设备 3.2.1 pwm_request 3.2.2 devm_pwm_get 3.2.3 pwm_free 3.3 控制 PWM …

Linux入门(2)

林纳斯托瓦兹 Linux之父 1. echo echo是向指定文件打印内容 ehco要打印的内容&#xff0c;不加任何操作就默认打印到显示器文件上。 知识点 在Linux下&#xff0c;一切皆文件。 打印到显示器&#xff0c;显示器也是文件。 2.重定向 >重定向操作&#xff0c;>指向的…

如何判断本地DNS是否污染

本地DNS污染是一种比较复杂且会对网络访问产生负面影响的现象。DNS即域名系统&#xff0c;它的主要功能是将便于人们记忆的域名转换为计算机能够理解的IP地址。本地DNS污染是指在本地网络环境中&#xff0c;DNS解析过程受到恶意干扰或错误配置的影响&#xff0c;使得域名被解析…

【数据仓库】Hive 拉链表实践

背景 拉链表是一种数据模型&#xff0c;主要是针对数据仓库设计中表存储数据的方式而定义的&#xff1b;顾名思义&#xff0c;所谓拉链表&#xff0c;就是记录历史。记录一个事务从开始一直到当前状态的所有变化的信息。 拉链表可以避免按每一天存储所有记录造成的海量存储问题…