嵌入式笔试刷题(第35天)
1. 简述C语言中static关键字的作用。
✅ 答案:
static
在函数内:变量只初始化一次,生命周期贯穿整个程序运行期间(局部静态变量)。static
在文件内:限制变量或函数的作用域只在当前文件内(内部链接性)。static
在全局变量前:防止其它文件访问这个变量。
✅ 讲解:
- 局部static变量,函数调用多次也不会重新初始化。适合记忆状态。
- 文件内static函数,只能被当前文件调用,外部不可见。
- 好处:隐藏实现细节,防止命名冲突。
2. 简述什么是大端存储和小端存储。
✅ 答案:
- 大端存储(Big Endian):高位字节存储在低地址,低位字节存储在高地址。
- 小端存储(Little Endian):低位字节存储在低地址,高位字节存储在高地址。
✅ 讲解:
举个例子,int a = 0x12345678
在内存中的存放:
0x00 |
0x12 |
0x78 |
0x01 |
0x34 |
0x56 |
0x02 |
0x56 |
0x34 |
0x03 |
0x78 |
0x12 |
大端适合人类阅读,小端适合硬件快速运算。
3. 访问特定内存位置0x1458C并赋值0xAA836,纯ASNI C写法。
✅ 答案:
*(volatile int*)(0x1458C) = 0xAA836;
✅ 讲解:
volatile
告诉编译器不要优化掉对该地址的访问。- 直接把地址强制转换成指向
int
类型的指针,然后赋值。 - 嵌入式常见用法,比如寄存器读写。
4. 写出字符串strcpy的函数实现过程。
✅ 答案:
char* my_strcpy(char* dest, const char* src) { char* ret = dest; while ((*dest++ = *src++) != '\0'); return ret; }
✅ 讲解:
- 把
src
指向的字符串一个字节一个字节复制到dest
。 - 复制包括结尾的
\0
。 - 返回的
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。