嵌入式软件工程师面试题(七)
✅作者简介:大家好我是:嵌入式基地,是一名嵌入式工程师,希望一起努力,一起进步!
📃个人主页:嵌入式基地
🔥系列专栏:嵌入式习题专栏
💬网上关于嵌入式的面试练习网站很少,这里给大家推荐一款嵌入式模拟面试、刷题神器,从基础到大厂面试题👉点击跳转刷题网站进行注册学习
微信公众号:嵌入式基地
嵌入式软件工程师面试题(七)
- 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中,二值信号量和互斥量的区别?
- 点击查看 原题更多的解析与讨论
互斥型信号量必须是同一个任务申请,同一个任务释放,其他任务释放无效。同一个任务可以递归申请。
二进制信号量,一个任务申请成功后,可以由另一个任务释放。
结束语
你想要的牛客都有,各种大厂面试真题在等你哦!快快通过下方链接注册加入刷题大军吧!
💬刷题神器,从基础到大厂面试题👉点击跳转刷题网站