快速学C语言——第2章:编程规范与代码风格
第2章编程规范与代码风格 在上一章中我们成功让计算机输出了 “Hello, World!”。但编写代码从来不只是给计算机看的指令更是写给人包括未来的自己看的 “文章”——清晰的代码能让人快速理解逻辑混乱的代码则会增加沟通和维护成本。 良好的编程规范与代码风格是优秀程序员的必备素养它不会直接影响程序的运行结果却能显著提高代码的可读性、可维护性还能减少潜在的逻辑错误。尤其是在团队协作中统一的规范就像标准的书面语言能让不同开发者无缝协作。 代码风格的核心价值在于 “让人看懂”具体体现在三个方面 1、可读性你可能在几周、几个月后重新阅读自己的代码清晰的风格能让你快速回忆起当初的设计思路不用花费大量时间 “破译” 自己写的代码。 2、协作性在团队项目中多个开发者会共同维护一份代码。统一的缩进、命名、注释风格能让每个人都能快速理解他人的代码避免因风格差异导致的误解。 3、减错性规范的结构如缩进区分代码块和清晰的命名能帮助你在编写时就发现逻辑漏洞比如循环嵌套错误、变量混用等问题。2.1 注释 注释是用自然语言解释代码的意图、功能或复杂逻辑相当于代码的 “说明书”。好的注释能让他人或未来的你快速理解代码的设计思路而非重复代码本身的功能。 规范要求 1、单行注释以//开头用于对单行代码或简短逻辑进行说明注释内容与//之间留一个空格如// 计算两个整数的和。intsumab; 2、多行注释以/*开头、*/结尾用于对函数、复杂模块进行大段描述。/* 函数名calculateCircleArea 功能根据圆的半径计算面积 参数radius - 圆的半径非负浮点数 返回值圆的面积double 类型 */doublecalculateCircleArea(doubleradius){return3.14159*radius*radius;} 注释应解释 “为什么这么做”而不是重复 “代码是什么”。比如无需注释// 给sum赋值为a加b但需要注释// 此处用加法而非乘法因为需求是求和而非乘积。2.2 缩进 缩进的核心作用是区分不同代码块如函数体、循环体、条件语句的层次结构让代码的逻辑嵌套关系一目了然。 规范要求通常使用一个制表符Tab或 4 个空格进行一级缩进务必在整个项目中保持统一不要混用 Tab 和空格。示例对比// 不良风格没有缩进结构混乱。intmain(){printf(Hello,);if(1){printf(World!);}return0;}// 良好风格清晰的缩进层次分明。intmain(){printf(Hello,);if(1){printf(World!);}return0;}2.3 空格与空行 空格和空行的作用是增强代码的 “呼吸感”分隔不同的逻辑单元避免代码挤在一起难以区分。 规范要求 1、在运算符、-、*、/、 等两侧添加空格如int sum a b;而非int sumab;。 2、在逗号后面添加空格如printf(%d, number);而非printf(%d,number);。 3、使用空行分隔不同的逻辑部分比如变量定义与执行语句之间、函数与函数之间如intmain(){// 变量定义区。inta10;//在运算符、-、*、/、 等两侧添加空格。intb20;// 执行语句区。intsumab;//在运算符、-、*、/、 等两侧添加空格。printf(sum: % d\n,sum);//在逗号后面添加空格。return0;}2.4 命名规范 变量、函数、常量等标识符的命名是 “自我注释” 的关键。一个清晰的名字能直接表明其用途减少不必要的注释。 规范要求 1、变量名使用有意义的名词或名词短语明确表明变量的用途避免使用无意义的字母详见 第3章3.3 变量的命名规则。 ●不良命名int a;、int temp;无法判断用途。 ●良好命名int student_age;学生年龄、int total_score;总分。 2、函数名使用动词或动词短语表明函数的操作行为让读者一眼知道函数的功能。 ●不良命名void func1();无意义。 ●良好命名void calculateAverage();计算平均值、int getUserInput();获取用户输入。 3、常见风格C 语言中最常用 “小写蛇形命名法”单词全小写用下划线连接如my_variable_name、calculate_total也可使用驼峰命名法首字母小写后续单词首字母大写如myVariableName、calculateTotal。笔记单行注释以//开头注释内容与//之间留 1 个空格多行注释以/*开头、*/结尾适用于大段功能描述。注释不宜过多或过少过多会导致代码臃肿过少会让复杂逻辑难以理解关键模块如函数功能、特殊逻辑必须加注释。注释核心原则解释 “为什么这么做”而非重复 “代码是什么”避免冗余注释。缩进、空格、命名的核心是 “统一”—— 无论选择哪种风格整个项目必须保持一致。缩进推荐使用一个制表符Tab或 4 个空格严禁混用 Tab 和空格现代 IDE 可自动实现统一缩进。空格使用规范运算符两侧、逗号后面需加空格增强代码可读性避免代码拥挤。空行用于分隔不同逻辑单元如变量定义区与执行语句区、函数之间让代码结构更清晰。标识符命名避免使用关键字如 int、if、for和系统保留名如 printf、scanf避免命名冲突。变量命名用有意义的名词 / 名词短语如student_age函数命名用动词 / 动词短语如calculateAverage拒绝无意义命名如a、func1。C 语言优先使用 “小写蛇形命名法”单词全小写下划线连接不推荐驼峰命名法多用于 C、Java。