嵌入式笔试刷题(第51天)
1. 声明:返回 char *
的函数指针,参数是 char*
和 char
✅ 答案:
char* (*func_ptr)(char*, char);
📌 说明:
- 返回值:
char*
- 参数:
(char*, char)
- 使用括号避免解析混乱
2. 在 bbb.c 中引用 aaa.c 的全局变量 g_rec_count
✅ 答案:
extern int g_rec_count;
📌 说明:
extern
表示引用外部定义的变量,不会重复定义
3. 设置与清除 bit5(即第 6 位)
#define BIT5 (0x1 << 5) static int a; void set_bit(void) { a |= BIT5; } void clear_bit(void) { a &= ~BIT5; }
📌 说明:
- 设置位用
|=
- 清除位用
&= ~
4. 写一个函数,在 /home
创建 log.txt 文件并写入 msg
int msg_save(char *msg) { FILE* fp; char fname[] = "/home/log.txt"; fp = fopen(fname, "w"); if (!fp) return -1; fputs(msg, fp); fclose(fp); return 0; }
📌 说明:
fopen
打开文件,fputs
写字符串,fclose
关闭
5. 内存泄漏的定义、原因、后果
✅ 简答:
- 定义:申请了内存但未释放,导致内存无法再利用
- 原因:缺少
free()
、异常退出、循环申请未清理等 - 后果:内存占用持续增长,最终导致系统卡顿或崩溃
6. 翻译:
✅ 翻译:
管理硬件资源的接口具有 Open 和 Close 函数。Open
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。