当前位置: 首页 > news >正文

入门C语言学习---从零开始

一、为什么是C?

1.兼顾 “底层操控” 和 “代码效率”

嵌入式系统的核心是直接操作硬件寄存器(比如配置 GPIO、定时器、串口),而 C 语言提供了指针位操作能力,能直接访问内存地址和硬件寄存器,和汇编语言的底层操控能力几乎一致,但比汇编更易读、易维护。同时,C 语言是编译型语言,生成的机器码体积小、执行速度快,对 STM32 这类资源受限(闪存、RAM 容量小)的芯片非常友好。举个简单例子:直接配置 STM32 的 GPIO 口输出高电平,C 语言一行代码就能实现,和汇编的执行效率几乎无差别。

// 直接操作寄存器,设置GPIOA的第5位为高电平 GPIOA->BSRR = GPIO_PIN_5;

2.可移植性强

嵌入式芯片的架构五花八门(ARM、51、RISC-V 等),但 C 语言的语法和标准库在不同架构下高度兼容。一段 STM32 上的 C 语言代码,稍作修改(比如替换寄存器定义)就能移植到 51 单片机或其他嵌入式芯片上;而汇编语言完全依赖硬件架构,换芯片就得重写全部代码。

3.开发效率远高于汇编

汇编语言需要逐行编写硬件指令,代码量大、可读性差,开发和调试成本极高;而 C 语言支持函数封装、循环、条件判断等高级特性,能大幅简化代码逻辑。比如实现一个 “串口发送字符串” 的功能,汇编可能需要几十行代码,C 语言用函数封装后只需几行,而且后续复用和修改都很方便。

4.嵌入式生态的 “标配” 支持

  • 几乎所有 MCU 厂商(ST、TI、NXP 等)都为自家芯片提供C 语言的标准库 / HAL 库(比如 STM32 的 HAL 库),开发者直接调用库函数就能实现复杂功能,无需从零开始操作寄存器。
  • 主流的嵌入式开发工具(Keil MDK、STM32CubeIDE)都对 C 语言有完美支持,编译、调试、烧录流程成熟稳定。

5.对比其他语言的短板

  • Python/Java:解释型语言,运行时需要虚拟机,占用内存大、执行速度慢,不适合资源受限的嵌入式场景。
  • C++:虽然也能用于嵌入式,但特性复杂(比如类、继承、异常处理),会增加代码体积和编译难度,在小型 MCU 上不如 C 语言轻便;仅在复杂嵌入式项目(比如智能车、机器人)中会搭配使用。

二、了解C语言历史

三、C语言用在哪里?

操作系统

嵌入式系统

驱动程序

底层驱动

图形引擎、图像处理、声音效果

C语言是一种工业语言

四、简单示例

1、程序框架,这几行必须要有;

2、printf打印函数

五、错误

写程序不要用中文;

每段执行程序结尾需要加一个 分号;以表示结束

双引号里面可以有中文,双引号以外不要有中文;

六、利用printf函数计算

C语言就会算这个式子的值,并输出;

双引号里面,%d前面的会原封不动的输出,而%d用逗号后面的值代替;

七、四则运算

http://www.cnnetsun.cn/news/52070.html

相关文章:

  • Cursor高级技巧与最佳实践
  • Cursor + MCP:冲击的不仅是前端,而是整个软件开发范式!
  • 2025年十大旗舰对决:极致轻薄成高端手机新战场
  • 【Vue3】 中 ref 与 reactive:状态与模型的深入理解
  • 毕设 stm32 RFID员工打卡门禁系统(源码+硬件+论文)
  • 全球最大、最领先的吉利全球全域安全中心正式发布
  • Android中Compose系列之按钮Button
  • wangEditor导入excel数据到html富文本编辑
  • 光伏电池simulink仿真模型 光伏电池建模仿真 包括改变温度 改变辐照度的特性分析 模型可...
  • JSP中如何利用分块技术实现百万文件上传优化?
  • 60、Ubuntu 安装硬件规划全攻略
  • 2025年12月— CET四六级答案
  • 锐捷RGSP | 端口安全技术原理与应用
  • Cameralink采集卡软件EspeedGrab使用讲解:4图像处理
  • 31、脚本编程进阶:Here文档、自上而下设计与流程控制
  • 信捷XDH系列PLC的追剪/飞剪/电子凸轮程序模板
  • 【大模型】-LangChain--stream流式同步异步
  • 兜兜英语每日短语:逃单篇
  • 计算机毕业设计springboot汽车智慧检修系统 基于SpringBoot的智能汽车故障预测与维修管理平台 融合IoT的SpringBoot车辆健康监测与维修决策系统
  • python3
  • 【3D图像技术分析与实现】Apple Vision Pro三维成像技术栈深度解析
  • 经典算法题详解之统计重复个数(三)
  • 移动应用开发实验室大一上考核
  • 云数据库服务(如AWS RDS)的优势和考虑因素?
  • 【设计模式|第四篇】适配器模式:让不兼容的接口协同工作
  • asgiref终极指南:高效解决Python异步通信难题
  • 医学影像深度学习知识点总结
  • 从零到一:自动化3D建模的免代码解决方案
  • Kali中生成被控端
  • 13、Linux 文本编辑与命令操作实用指南