兆易创新嵌入式开发一面,面试官主要问了这些

1. volatile 关键字有什么作用?它能保证线程安全吗?

答案:

volatile 的作用是告诉编译器,这个变量的值可能会被外部因素修改,因此每次使用都要直接从内存中读取,而不是从寄存器或缓存中取值。

它常用于:

  • 中断与主循环共享变量
  • 多线程共享标志位
  • 硬件寄存器映射

volatile不能保证线程安全,因为它只能保证“可见性”,不能保证“原子性”。如果是复合操作,比如 count++,仍然可能发生竞争问题。

2. const#define 的区别是什么?

答案:

const 是有类型的常量,编译器会做类型检查,调试时也更容易定位。

#define 是预处理宏,本质上是文本替换,没有类型信息。

主要区别:

  • const 有类型安全,#define 没有
  • const 更适合定义常量变量
  • #define 更适合条件编译、宏开关、简单宏表达式

在实际开发里,能用 const 的地方通常优先用 const

3. 指针和引用的区别是什么?

答案:

指针本质上是一个变量,保存另一个变量的地址;引用则是变量的别名。

区别主要有:

  • 指针可以为空,引用定义时必须初始化
  • 指针可以改变指向,引用一旦绑定后不能再改
  • 指针需要解引用访问,引用可以像普通变量一样使用
  • 指针占内存,引用本质上更像语法层封装

在 C 语言和嵌入式底层开发中,指针更常用;在 C++ 接口设计中,引用可读性更好。

4. 什么是栈和堆?它们的区别是什么?

答案:

栈和堆都是内存的一部分,但管理方式不同。

栈:

  • 由系统自动分配和释放
  • 存放局部变量、函数参数、返回地址
  • 分配速度快,但空间通常较小

堆:

  • 由程序员手动申请和释放
  • 常用于动态内存分配
  • 更灵活,但容易产生内存泄漏和碎片

嵌入式系统里通常更谨慎使用堆,因为系统往往更强调可控性和稳定性。

5. 什么情况下会发生内存泄漏?在嵌入式中为什么要特别关注?

答案:

内存泄漏是指申请了内存但没有释放,导致这部分内存后续无法再被使用。

常见情况:

  • malloc 后忘记 free
  • 指针被覆盖,原地址丢失
  • 异常流程中提前返回,未释放资源

嵌入式系统中内存本来就有限,而且设备通常需要长期稳定运行,所以内存泄漏积累后可能导致系统越来越慢,甚至崩溃。

6. static 关键字在 C 语言里有哪些作用?

答案:

static 在不同位置有不同含义。

修饰局部变量时:

  • 变量只初始化一次
  • 生命周期延长到整个程序运行期间
  • 作用域仍然只在当前函数内

修饰全局变量或函数时:

  • 作用域限制在当前文件内
  • 防止外部文件访问,起到隐藏作用

在嵌入式中,static 常用于模块内私有函数、私有全局变量和状态保存。

7. 为什么中断服务函数里不建议做复杂逻辑?

答案:

因为中断

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式面试八股文全集 文章被收录于专栏

这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。

全部评论

相关推荐

前几天这下午那场面试真的是有史以来面试体验感最差的一次。本来这个职位和我就不是同一个领域的,我是做游戏的,你做短剧的来招我,所以我个人意向本来就不大,但hr昨天疯狂追着我,要给我安排面试才有了这一场面试。这是我第一次参加微信群面试,四个人面我一个。约的下午1:30,她们公司的面试官晚了10分钟才进入会议室,hr介绍说他是什么什么总,所以我也礼貌性的随着一起叫的什么什么总。上来之后让我自我介绍,完了之后就开始他的表演了。程高高在上的态度,语气中全程带着嘲讽和贬低的意思,说我做的这个工作谁都能做,你的价值是什么?完全没看到你的价值。我礼貌回答了我觉得自己做的有价值的地方,他就开始疯狂diss 说你觉得自己做的这个事情成果好吗?我说我觉得我做的成果挺好的。接下来就是无尽的质疑和贬低的话,面到一半我真的气的想甩手机走了,但是由于第一次遇到这种情况不知道怎么办只是很气的状态,所以出于礼貌没有打断面试的进行,最后我真的面不下去了,他问我还有什么问题吗?我说没了,然后他就开始让其他面试官问我,其他面试官还是挺礼貌的,所以我也礼貌回答了,面试就结束了。嗷对了,微信群面试的时候就让我一个人开了摄像头,其他几个面试官都没开。一点小建议:面试本质是双向选择,对方不尊重你,也暴露了他们的团队文化。遇到这种情况,不用急着怼回去,像你一样冷静记录、面试结束后礼貌反馈给HR,已经很得体了。下次可以提前确认:面试官是否开摄像头?面试领域是否匹配?能筛掉不少坑。记住:不是你不够好,是对方不配。
牛客54854077...:没有回怼回去,看着不够爽
面试体验最好和最差的公司
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务