嵌入式笔试刷题(第52天)
11. assert 是什么,需要包含什么头文件?怎样禁用?
✅ 答案:
- assert 是一个 宏
- 头文件:#include <assert.h>
- 禁用方式:在 #include <assert.h> 之前添加:
📌 说明:assert
在调试时用于检查表达式是否为真,若为假则终止程序,发布版本常禁用。
12. 面向对象的三个基本特征
✅ 答案:
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
📌 说明: 是 OOP 的三大核心概念,分别对应数据保护、复用和行为灵活性。
13. 代码输出分析
int a[7] = {1,2,3,4,5,6,7}; int *ptr = (int *)(&a + 1); printf("%d %d", *(a+1), *(ptr-1));
✅ 答案:2 7
📌 解释:
a+1
指向 a[1],值为 2;&a
是整个数组地址,类型是int (*)[7]
;&a + 1
跨过整个数组,相当于指向a[7]
的地址,即下一个 int;(int *)(&a + 1)
强转为 int* 后回退一位:ptr-1 = &a[6]
,值为 7
14. 重定向符说明
|
将标准输出(stdout)重定向到文件 |
|
将标准错误输出(stderr)重定向到文件 |
|
将标准错误输出重定向到标准输出 |
|
将文件描述符 4 重定向为标准输入(fd 0) |
|
合并两个文件内容输出到 file3(覆盖) |
|
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。