本文用大白话 超简单例子讲解同时把嵌入式行业的通用代码规范同步讲透不用任何复杂的单片机代码零基础也能一眼看懂、直接上手。1. 语句语句就是 C 语言里的一句指令就像你给别人说 “把灯打开”一句话让电脑 / 单片机做一件事。C 语言里每一句指令的结尾必须加一个英文分号;就像我们说话结尾要加句号告诉电脑 “这句话说完了”。最简单的例子// 这是1条完整语句给名叫a的“小盒子”里装数字10 a 10; // 这也是1条完整语句让a盒子里的数字加1 a a 1;嵌入式行业规范小白必记✅ 规范 1一行只写一条语句一条语句只做一件事❌ 错误写法一行挤多条看不清、易出错a10; b20; c30;✅ 正确写法一行一条清晰明了a 10; b 20; c 30;✅ 规范 2结尾的分号必须是英文分号;绝对不能用中文分号中文符号单片机完全不认会直接报错。2. 表达式表达式就是能算出一个结果的式子就像数学题里的11能算出结果2。表达式是语句的 “零件”把表达式加上分号就变成了一条完整的语句。最简单的例子// 这是1个表达式能算出结果11 10 1 // 这是1个表达式能算出a和b两个数的和 a b // 把表达式分号就变成了语句 c a b; // 整行是1条语句等号右边的ab就是表达式嵌入式行业规范小白必记✅ 规范 1表达式里的运算符前后必须加空格方便看清❌ 错误写法cab;✅ 正确写法c a b;✅ 规范 2复杂表达式必须用括号()明确计算顺序不要靠电脑默认规则避免单片机里算错结果❌ 错误写法有人会先算 ab有人先算 b*10有歧义c a b * 10;✅ 正确写法明确先算括号里的绝对不会出错c a (b * 10);3. 语句块语句块就是用大括号{}包起来的一组语句就像把好几句相关的话放进一个文件夹告诉电脑这一堆指令是一起的要一起执行。最常用在判断、循环里是 C 语言最基础的代码结构。最简单的例子// 这就是1个完整的语句块如果a5就执行大括号里的3条语句 if (a 5) { b 10; c 20; d 30; }嵌入式行业规范小白必记✅ 规范 1大括号{}必须成对写左括号{和右括号}各占一行上下对齐嵌入式行业通用的标准写法❌ 错误写法 1括号不换行挤在一起if(a5){ b10; }❌ 错误写法 2括号不对齐层级混乱if(a5) { b10; }✅ 正确写法上下对齐层级清晰if (a 5) { b 10; c 20; }✅ 规范 2大括号里的每一条语句都要向右缩进 4 个空格或 1 个 Tab就像写作文段落开头空两格一眼就能看出这是块里的内容。✅ 规范 3哪怕语句块里只有 1 条语句也必须加大括号这是嵌入式里最容易踩的坑不加括号很容易出隐藏 bug❌ 错误写法if (a 5) b 10;✅ 正确写法if (a 5) { b 10; }4. 空格空格就是 C 语言里的 “空白间隔”就像我们写字要字和字之间留空隙不然挤在一起完全看不清。空格不会影响程序运行但会极大影响代码可读性嵌入式行业对空格的要求非常严格是判断代码是否专业的核心标准。正反例子对比❌ 没有空格的错误写法挤成一团根本看不清if(a5b10){cab;}✅ 加了空格的正确写法一眼就能看懂逻辑if (a 5 b 10) { c a b; }嵌入式行业规范小白必记4 条就够关键字比如if、for、while后面必须加 1 个空格✅ 正确if (a 5)❌ 错误if(a5)运算符、、-、、等的前后必须各加 1 个空格✅ 正确c a b❌ 错误cab逗号,后面必须加 1 个空格前面不加✅ 正确func(a, b, c)❌ 错误func(a,b,c)括号()紧贴括号的地方不加空格✅ 正确if (a 5)❌ 错误if ( a 5 )5. 注释注释就是你写在代码里的笔记是给人看的电脑完全不会管注释里的内容。就像你在课本上写的批注方便自己和别人看懂这段代码是干嘛的。嵌入式行业里注释是必须写的不然过一个月你自己都忘了代码是做什么的。C 语言有 2 种注释写法单行注释//后面的内容都是注释一行写完多行注释/*开头*/结尾中间可以写好几行注释最简单的例子// 这是单行注释给a赋值为10 a 10; /* 这是多行注释 功能计算a和b的和 参数a是第一个数b是第二个数 返回两个数的和 */ c a b;嵌入式行业规范小白必记✅ 规范 1单行注释必须用//禁止用/* */写单行注释避免老代码里出现嵌套 bug❌ 错误/* 给a赋值 */ a 10;✅ 正确// 给a赋值为10 a 10;✅ 规范 2注释要写 **“为什么这么写”**而不是 “代码写了什么”废话注释毫无意义❌ 错误注释代码已经能看出来完全是废话a a 1; // a加1✅ 正确注释说清楚代码的目的// 累计按键按下的次数每按一次数值加1 keyCount keyCount 1;✅ 规范 3改了代码必须同步改对应的注释注释和代码不一致比不写注释还坑人。✅ 规范 4中文注释必须用 UTF-8 编码避免单片机编译器里出现乱码6. printf () 函数printf () 是 C 语言自带的 **“打印工具”**就像一个打印机能把你想看到的内容打印到电脑屏幕上嵌入式里就是打印到串口助手是我们调试代码最常用的工具。6.1 基本用法把你要打印的内容放在双引号里结尾加分号就能完成打印。其中\n是换行符就像按一下回车让打印的内容不会挤在一行。最简单的例子// 打印一句话\n 表示换行 printf(Hello C语言!\n); // 运行后屏幕上会显示Hello C语言!嵌入式规范✅ 打印内容的结尾必须加\n换行符不然内容会挤在一行嵌入式串口打印还可能出现内容不显示的问题。✅ 双引号必须是英文的不能用中文的“”否则会直接报错。6.2 占位符占位符就是在打印内容里先占一个位置后面用变量的值填上。就像你写请假条先写 “我因__原因请假”这个__就是占位符后面再填上具体的原因。小白必记的 3 个常用占位符占位符用途对应变量类型%d打印整数比如 10、20、-5整数类型%f打印小数比如 3.14、0.5小数类型%c打印单个字符比如 A、B字符类型最简单的例子int age 18; // %d 占了位置后面用age的值18填上 printf(我的年龄是%d 岁\n, age); // 运行后显示我的年龄是18 岁 float height 1.75f; // 多个占位符后面按顺序填变量一个萝卜一个坑 printf(年龄%d 岁身高%f 米\n, age, height); // 运行后显示年龄18 岁身高1.750000 米嵌入式规范✅ 占位符的数量必须和后面的变量数量完全一致多了少了嵌入式里都会出 bug。✅ 占位符的类型必须和变量的类型匹配%d对应整数%f对应小数不能乱填。6.3 输出格式输出格式就是给占位符加规则控制打印出来的样子比如控制小数显示几位、数字占几个位置让打印的内容整整齐齐嵌入式调试的时候整齐的日志更容易找问题。小白必记的 2 个常用格式控制小数位数%.2f表示只显示 2 位小数%.3f表示显示 3 位控制宽度%5d表示这个整数最少占 5 个字符的位置不够的话前面补空格最简单的例子float pi 3.1415926f; // 只显示2位小数 printf(圆周率%.2f\n, pi); // 运行显示圆周率3.14 int num 10; // 占5个位置右对齐 printf(数字%5d\n, num); // 运行显示数字 10 前面有3个空格一共占5位嵌入式规范✅ 打印小数的时候必须指定小数位数不要用默认的%f默认显示 6 位小数有很多没用的 0看着乱。✅ 调试用的打印要固定宽度让内容对齐方便嵌入式里看日志找问题。✅ 不要在 printf () 里写复杂的表达式只放变量避免嵌入式里打印的时候出意外。❌ 错误写法printf(和%d\n, a b * 10);✅ 正确写法int sum a b * 10; printf(和%d\n, sum);7. 标准库头文件标准库C 语言官方提前给你做好的「工具箱合集」里面有各种各样现成的工具。比如printf()这个打印工具就在stdio.h这个工具箱里数学计算的工具在math.h里。不用你自己从零做工具直接拿过来用就行。头文件每个工具箱的「清单」后缀是.h。你要用哪个工具箱里的工具就必须先用#include把对应的头文件包含进来告诉程序“我要用到这个工具箱里的东西了”。最简单的例子// 要用到printf()打印工具必须先包含stdio.h这个头文件 #include stdio.h int main(void) { printf(Hello C语言!\n); return 0; } // 如果不写#include stdio.h程序就不认识printf()是什么会直接报错嵌入式行业规范小白必记行业铁律✅ 规范 1#include必须写在文件的最开头不能写在代码中间。✅ 规范 2包含头文件的顺序必须固定标准库头文件 → 自己写的头文件中间用空行隔开❌ 错误写法#include my_gpio.h #include stdio.h #include stdint.h✅ 正确写法// 先放标准库的头文件 #include stdio.h #include stdint.h // 再放自己写的头文件 #include my_gpio.h #include my_uart.h✅ 规范 3标准库的头文件用尖括号包起来自己写的头文件用双引号包起来不能混用。✅ 规范 4嵌入式开发必须优先包含stdint.h这个标准头文件里面有固定长度的变量类型是嵌入式开发最核心的规范之一。