嵌入式大厂面经 3(持续更新中!)
1. 函数指针
面试题:函数指针的定义和使用方法是什么?
答案解析:
// 定义函数指针类型
typedef int (*Operation)(int, int);
// 函数定义
int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
// 使用函数指针
Operation op = add;
int result = op(10, 5); // 结果为15
op = sub;
result = op(10, 5); // 结果为5
2. 位操作
面试题:常见的位操作技巧有哪些?
答案解析:
// 1. 判断奇偶
bool isEven = (n & 1) == 0;
// 2. 交换两数
a ^= b;
b ^= a;
a ^= b;
// 3. 获取最低位1
int lowbit = n & (-n);
// 4. 统计1的个数
int count = 0;
while (n) {
n &= (n-1);
count++;
}
3. 结构体内存对齐
面试题:结构体内存对齐的规则是什么?
答案解析:
// 1. 基本规则
struct Example1 {
char c; // 1字节
int i; // 4字节
short s; // 2字节
};
// 实际占用12字节而不是7字节
// 2. 优化方法
struct Example2 {
int i; // 4字节
short s; // 2字节
char c; // 1字节
};
// 实际占用8字节
// 3. 指定对齐
#pragma pack(1)
struct Example3 {
char c;
int i;
short s;
};
#pragma pack()
// 实际占用7字节
更多内容全在下方专栏
全网最受欢迎的嵌入式笔试专栏
笔试专栏包含全部最新的笔试必考考点,非常适合在找工作面经薄弱的同学
3000+订阅还会涨价,提前订阅提前享受,持续更新中。
专栏链接:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
#嵌入式笔面经分享##嵌入式测试,嵌入式开发#
查看4道真题和解析