- 在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。
- 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。
【轻松学 C:编程小白的大冒险】--- 15 提高代码可读性的方法
一、变量命名:给变量起个"有身份证"的名字
1、见名知意:让变量自己"开口说话"
- 想象一下,如果全班50个同学都叫"小明",老师点名得多崩溃!
- 代码里的变量也一样,用
a/b/c
就像集体叫"小明",正确做法是让变量名直接表达用途: - 年龄用
age
而非a
- 学生姓名用
student_name
而非str1
- 是否及格用
is_pass
而非flag
两种主流命名规范:
- 🐫 驼峰命名法(CamelCase):
studentAge
、isStudentPass
(首单词小写,后续首字母大写) - 🛠 下划线命名法(snake_case):
student_age
、is_student_pass
(单词用下划线连接) - C语言推荐下划线命名法,尤其是Linux内核代码,这可是行业公认的"标准穿搭"!
2、作用域决定名字长度
- 🌍 全局变量(班长级):职责范围广,名字要详细,如
global_student_count
- 🔦 局部变量(小组级):作用范围小,可适当简短,如循环里的
count
(但必须保证当前作用域内一目了然)
二、注释:给代码写一本"使用说明书"
- 新手常犯错误:“我写的代码不需要注释!”
- 半年后:“这代码怎么和外星文一样?!”
- 注释是给未来的自己和协作伙伴留的"救命纸条",记住三个黄金原则:
- ✅ 关键逻辑必注 ✅ 复杂算法必注 ✅ 边界条件必注
- ❌ 不写废话注释(如
// 给a赋值
) ❌ 代码更新时同步更新注释
1、单行注释:// 关键时刻的贴心便签
// 计算三科总分(明确说明目的,非简单重复代码)
total_score = math_score + chinese_score + english_score;
2、多行注释:/* 函数的详细简历 */
/*
* 函数名称:factorial
* 功能描述:计算n的阶乘
* 输入参数:n - 非负整数(n<0时返回-1)
* 返回值:n的阶乘(n=0时返回1)
*/
int factorial(int n) {
if (n < 0) return -1;
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i; // 循环累乘
}
return result;
}
三、代码格式:给代码做一次"美容整形"
1、缩进:让代码结构层次分明
- 采用4个空格缩进(避免制表符显示不一致),像给代码"排座位":
if (score >= 60) { // 外层大括号与if对齐
printf("及格\n"); // 条件成立代码缩进4格
if (score >= 85) { // 内层条件语句再缩进4格(共8格)
printf("优秀\n");
}
} else { // else与if保持同一列
printf("不及格\n"); // 条件不成立代码缩进4格
}
2、空格:代码的"透气孔"
- 运算符两侧加空格:
a + b
、i < n
、if (condition)
- 函数参数列表:
printf("%d\n", sum)
(逗号后加空格) - 对比案例:
// 错误示范(挤成一团):
if(i<10)sum=a+b;printf("%d",sum);
// 正确示范(清爽易读):
if (i < 10) {
sum = a + b; // 运算符两侧空格
}
printf("%d\n", sum); // 逗号后空格
3、括号对齐:强迫症患者的福音
- 左右括号保持垂直对齐,快速定位代码块边界:
int main() { // 函数定义括号对齐
int i;
for (i = 0; // for循环括号对齐
i < 10;
i++) {
if (i % 2 == 0) { // if括号对齐
printf("%d是偶数\n", i);
}
}
return 0;
}
四、函数设计:让每个函数成为"专业选手"
1、单一职责原则:一个函数只做一件事
- ❌ 反例:万能函数(计算+打印+存储)
void calculate_and_print() { /* 包含多个功能 */ }
- ✅ 正例:职责分离
int calculate_total(int a, int b); // 专门计算
void print_result(int result); // 专门打印
2、参数命名:拒绝"匿名参数"
- 清晰的参数名让调用者一目了然:
// 不好:
int add(int a, int b)
// 好:
int add_student_scores(int math, int chinese)
3、参数解析表(专业版说明)
参数类型 | 参数名称 | 说明 | 示例 |
---|---|---|---|
输入参数 | math | 数学成绩(0-100) | 90 |
输入参数 | chinese | 语文成绩(0-100) | 85 |
输出参数 | *total | 总分(通过指针返回) | &student_total |
五、📝 课后划重点
- 变量命名:见名知意,C语言优先下划线命名法
- 注释规范:关键逻辑必注,拒绝废话与过时注释
- 格式美化:4格缩进+运算符空格+括号对齐
- 函数设计:单一职责+清晰参数名
六、🤣 编程冷笑话
- 为什么程序员总在黑暗里工作?
- 因为他们怕光(bug)!
- 冷知识:世界上第一个计算机bug真的是一只掉进继电器的飞蛾🐛
七、✨ 今日金句
“代码首先是写给人看的,其次才是让机器执行的。”
—— 编程界至理名言