快速学C语言——第2章:编程规范与代码风格

第2章:编程规范与代码风格


​ 在上一章中,我们成功让计算机输出了 "Hello, World!"。但编写代码从来不只是给计算机看的指令,更是写给人(包括未来的自己)看的 "文章"------ 清晰的代码能让人快速理解逻辑,混乱的代码则会增加沟通和维护成本

​ 良好的编程规范与代码风格是优秀程序员的必备素养,它不会直接影响程序的运行结果,却能显著提高代码的可读性、可维护性,还能减少潜在的逻辑错误。尤其是在团队协作中,统一的规范就像标准的书面语言,能让不同开发者无缝协作。

​ 代码风格的核心价值在于 "让人看懂",具体体现在三个方面:

​ 1、可读性 :你可能在几周、几个月后重新阅读自己的代码,清晰的风格能让你快速回忆起当初的设计思路,不用花费大量时间 "破译" 自己写的代码。

​ 2、协作性 :在团队项目中,多个开发者会共同维护一份代码。统一的缩进、命名、注释风格,能让每个人都能快速理解他人的代码,避免因风格差异导致的误解。

​ 3、减错性:规范的结构(如缩进区分代码块)和清晰的命名,能帮助你在编写时就发现逻辑漏洞,比如循环嵌套错误、变量混用等问题。

2.1 注释

​ 注释是用自然语言解释代码的意图、功能或复杂逻辑,相当于代码的 "说明书" 。好的注释能让他人(或未来的你)快速理解代码的设计思路,而非重复代码本身的功能。

​ 规范要求:

​ 1、单行注释:以//开头,用于对单行代码或简短逻辑进行说明,注释内容与//之间留一个空格,如:

c 复制代码
// 计算两个整数的和。
int sum = a + b;

​ 2、多行注释:以/*开头、*/ 结尾,用于对函数、复杂模块进行大段描述。

c 复制代码
/*
函数名:calculateCircleArea
功能:根据圆的半径计算面积
参数:radius - 圆的半径(非负浮点数)
返回值:圆的面积(double 类型)
*/

double calculateCircleArea (double radius) {

    return 3.14159 * radius * radius;

}

​ 注释应解释 "为什么这么做",而不是重复 "代码是什么"。比如无需注释 // 给sum赋值为a加b,但需要注释 // 此处用加法而非乘法,因为需求是求和而非乘积

2.2 缩进

​ 缩进的核心作用是区分不同代码块(如函数体、循环体、条件语句)的层次结构,让代码的逻辑嵌套关系 一目了然。

​ 规范要求:通常使用一个制表符(Tab)或 4 个空格进行一级缩进,务必在整个项目中保持统一,不要混用 Tab 和空格

示例对比:

c 复制代码
// 不良风格:没有缩进,结构混乱。
int main () {

printf ("Hello,");
if (1) {
printf ("World!");
}

return 0;
}
c 复制代码
// 良好风格:清晰的缩进,层次分明。

int main () {

    printf ("Hello,");
    if (1) {
        printf ("World!");
    }

    return 0;
}

2.3 空格与空行

​ 空格和空行的作用是增强代码的 "呼吸感",分隔不同的逻辑单元,避免代码挤在一起难以区分。

​ 规范要求:

​ 1、在运算符(+、-、*、/、= 等)两侧添加空格,如 int sum = a + b;,而非 int sum=a+b;

​ 2、在逗号后面添加空格,如 printf("%d", number);,而非 printf("%d",number);

​ 3、使用空行分隔不同的逻辑部分,比如变量定义与执行语句之间、函数与函数之间,如:

c 复制代码
int main () {

// 变量定义区。
    int a = 10; //在运算符(+、-、*、/、= 等)两侧添加空格。
    int b = 20;

// 执行语句区。
    int sum = a + b; //在运算符(+、-、*、/、= 等)两侧添加空格。
    printf ("sum: % d\n", sum); //在逗号后面添加空格。

    return 0;
}

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_namecalculate_total;也可使用驼峰命名法(首字母小写,后续单词首字母大写),如myVariableNamecalculateTotal

笔记

  1. 单行注释以 // 开头,注释内容与 // 之间留 1 个空格;多行注释以 /* 开头、*/ 结尾,适用于大段功能描述。
  2. 注释不宜过多或过少:过多会导致代码臃肿,过少会让复杂逻辑难以理解,关键模块(如函数功能、特殊逻辑)必须加注释。
  3. 注释核心原则:解释 "为什么这么做",而非重复 "代码是什么",避免冗余注释。
  4. 缩进、空格、命名的核心是 "统一"------ 无论选择哪种风格,整个项目必须保持一致。
  5. 缩进推荐使用一个制表符(Tab)或 4 个空格,严禁混用 Tab 和空格,现代 IDE 可自动实现统一缩进。
  6. 空格使用规范:运算符两侧、逗号后面需加空格,增强代码可读性,避免代码拥挤。
  7. 空行用于分隔不同逻辑单元(如变量定义区与执行语句区、函数之间),让代码结构更清晰。
  8. 标识符命名避免使用关键字(如 int、if、for)和系统保留名(如 printf、scanf),避免命名冲突。
  9. 变量命名用有意义的名词 / 名词短语(如 student_age),函数命名用动词 / 动词短语(如 calculateAverage),拒绝无意义命名(如 afunc1)。
  10. C 语言优先使用 "小写蛇形命名法"(单词全小写,下划线连接),不推荐驼峰命名法(多用于 C++、Java)。

相关推荐
byzh_rc1 小时前
[AI编程从入门到入土] 装饰器decorator
开发语言·python·ai编程
线束线缆组件品替网1 小时前
Amphenol ICC RJE1Y33610162401解析:工业网络线束为何越来越重要?
运维·服务器·网络·数码相机·智能路由器·电脑·智能音箱
贫民窟的勇敢爷们2 小时前
Java 与 Python 如何选型与融合
java·开发语言·python
流氓也是种气质 _Cookie2 小时前
Chrome Performance常见名词解释(FP, FCP, LCP, DCL, FMP, TTI, TBT, FID, CLS)
开发语言·javascript·ecmascript
gihigo19982 小时前
基于MATLAB的LTE物理层仿真系统
开发语言·matlab
刚子编程2 小时前
C# Join 实战:左连接写法、字符串拼接与 EF Core 性能调优
开发语言·c#·solr·join
fie88892 小时前
基于粒子群优化(PSO)算法的带STATCOM的IEEE 30节点系统最优潮流MATLAB实现
开发语言·算法·matlab
Stream_Silver2 小时前
【JNA实战:Java无缝调用Windows API模拟键盘输入】
java·开发语言·windows
焦糖玛奇朵婷3 小时前
回收小程序开发案例分享
java·开发语言