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

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务