嵌入式大厂面经 2(持续更新中!)

1. volatile关键字

面试题:volatile关键字的作用是什么?

答案解析:

  • 防止编译器优化
  • 适用场景:硬件寄存器多线程共享变量中断服务程序
// 示例:硬件寄存器
volatile uint32_t* const PORTB = (uint32_t*)0x40020400;

// 中断标志
volatile bool flag = false;

2. static关键字

面试题:static在不同场景下的作用是什么?

答案解析:

  1. 局部变量中:延长生命周期保持值不变
  2. 全局变量中:限制作用域
  3. 函数中:限制函数作用域
// 1. 静态局部变量
static int count = 0;

// 2. 静态全局变量
static int globalVar;

// 3. 静态函数
static void localFunc(void) {}

3. 大小端

面试题:如何判断系统是大端还是小端?

答案解析:

// 方法一:联合体
union {
    short value;    // 0x1234
    char bytes[2];  // bytes[0]是低地址
} test;

test.value = 0x1234;
if (test.bytes[0] == 0x34) {
    printf("小端系统\n");
} else {
    printf("大端系统\n");
}

// 方法二:指针转换
int checkEndian() {
    int value = 1;
    char *p = (char*)&value;
    return *p;  // 1为小端,0为大端
}

更多内容全在下方专栏

全网最受欢迎的嵌入式笔试专栏

笔试专栏包含全部最新的笔试必考考点,非常适合在找工作面经薄弱的同学

3000+订阅还会涨价,提前订阅提前享受,持续更新中。

专栏链接:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

#满分简历要如何准备?##嵌入式笔面经分享##嵌入式测试,嵌入式开发#
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

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