自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 最重要的:嵌入式C语言

摘要:本文介绍了嵌入式C语言中的数据类型表示(如int8_t/uint8_t等)、位操作技巧(与或非异或、移位运算代替乘除),以及嵌入式开发特征(硬件直接操作、资源受限、中断处理等)。重点讲解了多文件工程结构管理方法,包括头文件规范、静态变量/函数使用、避免循环依赖等技巧,并解释了句柄、回调函数概念及volatile关键字在硬件编程中的特殊作用。文章还涉及代码注释规范和带参宏的使用注意事项。

2025-10-28 21:12:52 418

原创 库函数与函数输入输出设计

本文介绍了C语言中不同函数类型的返回值处理方式:计算类函数返回单个值,复杂数据返回结构体指针,可能失败的函数返回状态信息。同时概述了嵌入式开发中常用的C标准库函数,包括stdio.h、string.h等主要库的功能。重点讲解了printf系列函数(printf、sprintf、snprintf)的特性、区别及使用场景,指出在嵌入式系统中更推荐使用安全的snprintf函数。此外,还提及了scanf函数在嵌入式开发中的不常用性及安全替代方案。

2025-10-27 22:26:03 370

原创 结构体、枚举以及typedef

文章摘要: 本文介绍了C语言中的结构体(struct)、枚举(enum)和typedef三种重要概念。结构体允许组合不同数据类型,需注意内存对齐问题;枚举提供可读性强的常量管理;typedef用于创建类型别名,相比宏定义更安全。文章通过实例展示了它们的定义和使用方法,并比较了typedef与宏定义的区别,强调typedef在类型安全和可移植性方面的优势。同时提醒应合理使用typedef,避免过度使用导致代码可读性降低。

2025-10-27 21:48:17 660

原创 值传参和引用传参

摘要:函数参数传递有两种方式:值传递和引用传递。值传递仅传递实参副本,函数内修改不影响原值;引用传递通过地址操作直接影响原值。示例中swap函数演示了值传递无法交换变量值(输出仍为20,30),而通过指针传递地址(引用传递)则成功交换(输出变为30,20)。关键区别在于是否直接操作原变量的内存地址。

2025-10-19 22:57:52 122

原创 初识C指针

《C语言指针基础》摘要:指针是存储变量内存地址的变量,类型与所指变量相同,可高效操作内存。关键符号&(取址)和*(解引用)用法需注意。指针声明时,int* a,b仅a是指针,建议写成int *a,*b。数组名即地址,无需&。指针大小由硬件决定(32位系统4字节,64位8字节)。指针类型决定内存解析方式(字节数和解析规则),广泛应用于数组、字符串和动态内存管理。

2025-10-19 18:08:53 306

原创 函数的声明与定义

摘要:函数由返回类型、函数名、参数列表和函数体构成。返回类型需与返回值一致,无返回值时用void。参数列表定义输入参数,函数体包含执行逻辑。函数声明需与定义一致,非静态函数名不能重复。跨文件调用时,声明通常放在.h文件中,并用#ifndef等防止重复引用。函数命名需唯一,避免与库函数冲突。参数传递时类型和顺序需一致,函数体内避免声明与形参同名的变量,且不应递归调用自身。

2025-10-14 23:05:49 134

原创 switch语句

本文介绍了switch语句的执行流程:从表达式匹配开始,找到对应case执行语句,遇到break跳出,否则继续执行,若无匹配则执行default。相比多个if语句,switch在处理多分支时更高效,可读性更强,能显著提升程序运行效率。特别适用于协议处理、协程和状态机编程等场景,是优化多条件判断的理想选择。

2025-10-14 21:05:40 87

原创 判断语句与循环语句

本文介绍了编程中的条件判断和循环控制语句。if-else语句用于条件判断,建议始终使用花括号包裹执行语句;多层判断可通过elseif实现。循环语句包括:while循环在条件为真时执行;do-while至少执行一次;for循环包含初始化、条件判断和迭代操作三部分,适合固定次数循环。控制关键字break可立即退出当前循环,continue则跳过本次循环剩余部分直接进入下一次循环。这些结构是程序流程控制的基础组件。

2025-10-04 16:34:15 268

原创 C语言运算符

本文汇总了常用运算符类型及特性。算术运算符包括加减乘除和取余(%),注意优先级规则和取余运算;赋值运算符如a+=1等价于a=a+1;自增自减需区分a++和++a的执行顺序差异。关系与逻辑运算符组合用于判断,结果返回布尔值,逻辑运算具有短路特性。特别指出浮点数不宜直接比较相等性。位运算符通过移位实现高效乘除运算(左移乘2,右移除2)。指针运算符中*用于解引用,&用于取地址。

2025-10-03 10:30:52 279

原创 变量与数据类型(适用于大一同学)

本文介绍了C语言中变量的基本概念和使用方法。变量是存储数据的容器,具有类型、名称、数据和作用范围四个要素。文章详细说明了变量的定义、声明、赋值规则,以及与常量的区别。同时阐述了变量命名规范、数据类型(整型、字符型、浮点型)、数组的定义和使用。此外,还讲解了变量的作用域(全局变量、局部变量、静态变量)、声明与定义的区别,以及static和sizeof关键字的用法。文中特别强调了嵌入式系统编程中整型变量的重要性,并提醒注意浮点数的精度损失问题。

2025-10-02 14:10:09 527

原创 嵌入式C语言基础——语句与程序结构(适用于大一的同学)

本文介绍了C语言的基本语法结构。主要内容包括:1.C语言语句类型(表达式语句、控制语句、声明语句)及其语法规则;2.main函数作为程序入口的关键作用;3.C语言程序的典型结构,特别针对嵌入式开发给出了单片机上的标准程序框架,包含库文件引用、变量定义、初始化函数和主循环等核心要素。文章还提及了C语言关键字、注释、预处理指令等编程要素,强调了一个C工程只能有一个main函数的限制。

2025-09-22 14:08:42 188

原创 嵌入式C入门基础

编程本质在于代码可读性而非单纯执行,Donald Knuth的名言"程序是写给人读的"道出这一核心。从源代码到可执行文件经历四步:预处理(.i)、编译(.s)、汇编(.o)、链接(生成.exe/ELF/HEX等)。不同平台的可执行文件格式各异,如Windows的.exe、Linux的ELF、单片机的HEX。开发工具链(Keil/GCC等)负责完成这一转换过程,其中HEX文件包含地址信息,BIN文件为纯二进制。整个流程强调KISS原则(简单至上),最终生成机器可执行的二进制代码。

2025-09-22 11:41:26 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除