分享7道嵌入式面试题,你会几道?
💡
原文中文,约3800字,阅读约需10分钟。
📝
内容提要
static关键字的作用包括修饰局部变量、全局变量、函数、成员变量和成员函数。volatile关键字用于修饰多线程访问的变量。sizeof()计算内存占用字节数,strlen()计算字符串字符个数。浮点数比较时推荐使用范围。IIC协议是一种串行通信协议,包括起始和停止条件、总线裁决、数据位有效性规定等。从机地址和主机地址根据硬件连接确定。
🎯
关键要点
- static关键字修饰局部变量时,将其转变为静态变量,生命周期与程序相同。
- static修饰全局变量限制其链接属性,只能在定义所在文件内访问。
- static修饰函数使其只能在定义文件中调用,声明和定义需在同一文件。
- static修饰成员变量使其成为类的全局变量,所有对象共享同一实例。
- static修饰成员函数使其不包含this指针,所有对象共享该函数。
- volatile关键字用于修饰多线程访问的变量,防止编译器优化导致不一致。
- volatile适用于并行设备的硬件寄存器、中断服务程序和多任务环境下共享的标志。
- sizeof()是运算符,计算内存字节数;strlen()是函数,计算字符串字符个数。
- sizeof()可用于任何类型,strlen()仅适用于以' '结尾的字符串。
- 比较浮点数时推荐使用范围,避免精度丢失。
- 在中断中使用浮点运算可能导致数据错误,需谨慎处理。
- IIC协议是串行通信协议,包含起始和停止条件、总线裁决等。
- IIC从机地址由硬件连接确定,主机地址在起始信号后传送。
- 硬件IIC时序由外设控制,软件IIC时序需CPU控制,适用场景不同。
➡️