从NOI真题‘谁考了第k名’出发,聊聊C++结构体排序的三种实战写法(附避坑指南)
2026/6/10 5:13:21
嵌入式系统的核心是直接操作硬件寄存器(比如配置 GPIO、定时器、串口),而 C 语言提供了指针和位操作能力,能直接访问内存地址和硬件寄存器,和汇编语言的底层操控能力几乎一致,但比汇编更易读、易维护。同时,C 语言是编译型语言,生成的机器码体积小、执行速度快,对 STM32 这类资源受限(闪存、RAM 容量小)的芯片非常友好。举个简单例子:直接配置 STM32 的 GPIO 口输出高电平,C 语言一行代码就能实现,和汇编的执行效率几乎无差别。
// 直接操作寄存器,设置GPIOA的第5位为高电平 GPIOA->BSRR = GPIO_PIN_5;嵌入式芯片的架构五花八门(ARM、51、RISC-V 等),但 C 语言的语法和标准库在不同架构下高度兼容。一段 STM32 上的 C 语言代码,稍作修改(比如替换寄存器定义)就能移植到 51 单片机或其他嵌入式芯片上;而汇编语言完全依赖硬件架构,换芯片就得重写全部代码。
汇编语言需要逐行编写硬件指令,代码量大、可读性差,开发和调试成本极高;而 C 语言支持函数封装、循环、条件判断等高级特性,能大幅简化代码逻辑。比如实现一个 “串口发送字符串” 的功能,汇编可能需要几十行代码,C 语言用函数封装后只需几行,而且后续复用和修改都很方便。
操作系统
嵌入式系统
驱动程序
底层驱动
图形引擎、图像处理、声音效果
C语言是一种工业语言
写程序不要用中文;
每段执行程序结尾需要加一个 分号;以表示结束
双引号里面可以有中文,双引号以外不要有中文;
C语言就会算这个式子的值,并输出;
双引号里面,%d前面的会原封不动的输出,而%d用逗号后面的值代替;