嵌入式大厂面经 2(持续更新中!)
1. volatile关键字
面试题:volatile关键字的作用是什么?
答案解析:
- 防止编译器优化
- 适用场景:硬件寄存器多线程共享变量中断服务程序
// 示例:硬件寄存器 volatile uint32_t* const PORTB = (uint32_t*)0x40020400; // 中断标志 volatile bool flag = false;
2. static关键字
面试题:static在不同场景下的作用是什么?
答案解析:
- 局部变量中:延长生命周期保持值不变
- 全局变量中:限制作用域
- 函数中:限制函数作用域
// 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
#嵌入式笔面经分享##嵌入式测试,嵌入式开发#
查看11道真题和解析