目录一、C/C++ 语言基础(10 个)1.const与#define的区别2.volatile关键字的作用与误用3.static关键字的三种用法4. 指针与数组的区别5.malloc/free与new/delete的区别6. 栈与堆的区别7.typedef与#define的区别8.sizeof与strlen的区别9. 左值与右值的区别10.inline函数与宏函数的区别二、内存管理(8 个)11. 内存分区(代码段、数据段、BSS 段、栈、堆)12. 野指针与悬空指针的区别13. 内存泄漏与内存溢出的区别14.calloc与malloc的区别15.realloc的工作原理与注意事项16. 内存对齐的概念与原因17. 段错误(Segmentation Fault)的常见原因18. 虚拟内存与物理内存的区别三、中断与异常(7 个)19. 中断与轮询的区别20. 中断服务程序(ISR)的设计原则21. 中断优先级与中断嵌套22. 中断上下文与任务上下文的区别23. 外部中断与内部中断的区别24. 中断屏蔽与中断使能25. 中断与异常的区别四、实时操作系统(RTOS)(8 个)26. RTOS 与通用操作系统(GPOS)的区别27. 抢占式调度与非抢占式调度的区别28. 任务优先级与优先级反转29. 信号量与互斥锁的区别30. 消息队列与邮箱的区别31. 任务的五种状态32. 任务栈的作用与大小计算33. 空闲任务与钩子函数五、硬件接口与通信(9 个)34. GPIO 的输入模式与输出模式35. UART、SPI、I2C 的区别36. I2C 的工作原理与多主机通信37. SPI 的四种工作模式38. UART 的波特率与帧格式39. ADC 的分辨率与采样率40. PWM 的工作原理与应用41. 定时器的四种工作模式42. CAN 总线的工作原理与特点43. 看门狗定时器的工作原理与应用44. 复位电路的类型与作用45. 电源管理的低功耗模式46. 硬件 I2C 与软件 I2C 的区别六、系统与高级概念(4 个)47. DMA 的工作原理与优势48. 中断向量表的作用与重定位49. 链接脚本的作用与基本结构50. 交叉编译与本地编译的区别一、C/C++ 语言基础(10 个)1.const与#define的区别容易混淆点:很多人认为两者都用于定义常量,功能完全相同。详细答案:const是 C/C++ 关键字,在编译阶段处理,具有类型检查和作用域限制;#define是预处理器指令,在预处理阶段进行简单的文本替换,没有类型检查和作用域概念。核心区别:类型安全:const有明确的数据类型,编译器会进行类型检查;#define