嵌入式笔试刷题(第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 内核、以及实用电路知识等内容。
