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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务