- 博客(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关注的人
RSS订阅