📍面试公司:影石🕐面试时间:8.22 90分钟💻面试岗位:嵌入式软件工程师❓面试问题:1 自我介绍2 c语言编译成可执行文件的过程;定义函数常见的两种编译器报错,一种是找不到声明,一种是找不到定义,分别处于哪个阶段?3 为什么会出现mutli define,怎么解决4 define和函数的区别,宏定义可能存在的风险5 结构体和联合体的区别6 对寄存器进行读写,如果不用移位不用或与,定义个什么数据结构可以让我们访问寄存器的每一位7 结构体作为全局变量和局部变量时分别存储在哪里8 堆尝尝和什么数据结构搭配使用9 怎么判断链表有没有环10 链表,数组访问增删的时间复杂度11 你对内存对齐的理解,计算某结构体所占内存;不补齐的话应该怎么做,对硬件有影响吗12 接触过柔性数组吗13 c++四大特性,public,protected,private在继承上的区别14 const用法,定义下常量指针,指向常量的指针,指向常亮的常量指针;入参和返回值用const有什么好处;大对象拷贝用const会有什么不一样15 new和malloc区别16 内存泄漏,悬空指针和野指针怎么形成的,怎么避免17 usb的枚举过程,哪些过程用到复位,spi基本通信原理,它的四种工作模式;dma快了,spi慢了和dma慢了,spi快了分别可能会导致什么现象,在软硬件层面上怎么定位18 rtos的状态有哪些,对抢占优先级和时间片轮转的理解19 linux设备和驱动的区别,spi,usb,iic他属于驱动还是设备20 linux可以直接用指针操作物理地址吗?为什么21 克隆态驱动给用户态使用流程22 中断上下半部概念与区别,执行顺序23 中断可以用互斥锁和自旋锁吗24 反问🙌面试感想: