当前位置: 首页 > news >正文

嵌入式软件工程师面试题(七)

✅作者简介:大家好我是:嵌入式基地,是一名嵌入式工程师,希望一起努力,一起进步!
📃个人主页:嵌入式基地
🔥系列专栏:嵌入式习题专栏
💬网上关于嵌入式的面试练习网站很少,这里给大家推荐一款嵌入式模拟面试、刷题神器,从基础到大厂面试题👉点击跳转刷题网站进行注册学习
微信公众号:嵌入式基地


嵌入式软件工程师面试题(七)

  • 1、简单描述一下数组指针和指针数组?
  • 2、简单描述linux设备驱动中的总线,设备和驱动的关系。
  • 3、简述一下什么是红黑树?
  • 4、指针和引用的区别?
  • 5、说说内联函数和宏函数的区别
  • 6、在FreeRTOS中,二值信号量和互斥量的区别?
  • 结束语

1、简单描述一下数组指针和指针数组?

  • 点击查看 原题更多的解析与讨论

数组指针是一个指针,指向一个数组。
指针数组由n个指针类型的数组元素组成。
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。
指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

2、简单描述linux设备驱动中的总线,设备和驱动的关系。

  • 点击查看 原题更多的解析与讨论

总线将设备和驱动绑定。
在系统每注册一个设备的时候,会寻找与之匹配的驱动;
相反的,在系统每 注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。
一个现实的Linux设备和驱动通常都需要挂接在一种总线上。
设备与驱动的关联通过总线的match()方法进行匹配,驱动挂载总线时与所有设备进行匹配,设备挂载总线时与所有的驱动进行匹配,所以驱动和设备的挂载无先后之分。
匹配成功后会通过调用驱动的probo()方法来初始化设备。

3、简述一下什么是红黑树?

  • 点击查看 原题更多的解析与讨论

红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一倍。具体来说,红黑树是满足如下条件的二叉查找树
1.每个节点要么是红色,要么是黑色。
2.根节点必须是黑色
3.红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。
4.对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。
5.最长的路径长度不会超过任意路径的两倍。

4、指针和引用的区别?

  • 点击查看 原题更多的解析与讨论

(1)指针是实体,占用内存空间;引用是别名,与变量共享内存空间。
(2)指针不用初始化或初始化为NULL;引用定义时必须初始化。
(3)指针中途可以修改指向;引用不可以。
(4)指针可以为NULL;引用不能为空。
(5)sizeof(指针)计算的是指针本身的大小;而sizeof(引用)计算的是它引用的对象的大小。
(6)如果返回的是动态分配的内存或对象,必须使用指针,使用引用会产生内存泄漏。
(7)指针使用时需要解引用;引用使用时不需要解引用‘*’。
(8)有二级指针;没有二级引用。

5、说说内联函数和宏函数的区别

  • 点击查看 原题更多的解析与讨论

相同点:
(1)二者都是通过将函数调用替换成完整的函数体,相比函数调用的时间、空间开销而言,二者提高了效率。
不同点:
(1)宏定义不是函数,而内联函数时函数,因此内联函数可以调试,宏定义不能。
(2)宏定义的代码展开阶段是预处理阶段,而内联函数在编译阶段,因此内联 函数有类型安全检查,宏定义没有
(3)内联函数作为类的成员函数时,可以访问类的所有成员(公有、保护、私有),宏定义不能。

6、在FreeRTOS中,二值信号量和互斥量的区别?

  • 点击查看 原题更多的解析与讨论

互斥型信号量必须是同一个任务申请,同一个任务释放,其他任务释放无效。同一个任务可以递归申请。
二进制信号量,一个任务申请成功后,可以由另一个任务释放。

结束语

你想要的牛客都有,各种大厂面试真题在等你哦!快快通过下方链接注册加入刷题大军吧!
💬刷题神器,从基础到大厂面试题👉点击跳转刷题网站

相关文章:

  • 力扣(412.516)补8.21
  • 数据集 | 基于计算机视觉的医学影像处理数据集
  • Apache RocketMQ 在阿里云大规模商业化实践之路
  • 《uni-app》一个非canvas的飞机对战小游戏实现-敌机模型实现
  • HTML生日快乐代码 html生日快乐网站制作 html烟花表白网站制作
  • 环境卫生学重点笔记
  • 改进搜索机制的单纯形法引导麻雀搜索算法-附代码
  • 带你吃透Servlet核心编程下篇(完整图文教程)
  • 化工原理 --- 流体流动3
  • 07. 使用子表达式
  • Kubernetes_14_静态Pod网关apiserver底层都是restful接口
  • 信息学奥赛一本通:1091:求阶乘的和
  • less和sass的区别[简洁易懂]
  • 爆肝一周——PYTHON 算法基础
  • (附源码)计算机毕业设计高校学生选课系统
  • $translatePartialLoader加载失败及解决方式
  • gitlab-ci配置详解(一)
  • in typeof instanceof ===这些运算符有什么作用
  • Java 多线程编程之:notify 和 wait 用法
  • javascript 总结(常用工具类的封装)
  • JS变量作用域
  • js面向对象
  • Mysql数据库的条件查询语句
  • Selenium实战教程系列(二)---元素定位
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue官网教程学习过程中值得记录的一些事情
  • 初探 Vue 生命周期和钩子函数
  • 浮现式设计
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 突破自己的技术思维
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ​TypeScript都不会用,也敢说会前端?
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (超详细)语音信号处理之特征提取
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (小白学Java)Java简介和基本配置
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .Net各种迷惑命名解释
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @在php中起什么作用?
  • [20160807][系统设计的三次迭代]
  • [20180129]bash显示path环境变量.txt
  • [HDU5685]Problem A
  • [HXPCTF 2021]includer‘s revenge