KyrieChao

2026-08-05 周三 · C 语言函数

2026-08-05

技术

C 语言 — 函数

学习内容:函数(Function)

核心概念

函数是 C 语言程序的基本构成单位,一个函数就是一个功能模块。两种编程思想:

思想 核心思路
模块化编程 项目 → 拆成若干功能模块 → 每个模块用函数实现 → 组合调用
面向过程编程 问题 → 拆成若干步骤 → 每个步骤用函数实现 → 按顺序调用

函数分为两种:

  • 自定义函数 — 自己定义自己用
  • 库函数 — 别人已实现,直接调用(标准 C 库约 300 个函数,如 printfscanf

函数定义语法

返回值类型 函数名(形参列表)
{
    // 函数体
    // return 表达式;
}
  • 返回值类型可以是任意类型,不需要返回值写 void
  • 形参(形式参数)就是变量,多个用逗号隔开;也可以没有(留空或写 void
  • 函数必须先定义或声明,然后才能调用

调用流程

实参初始化形参 → 进入函数体执行 → 遇到 return 或执行完毕 → 返回调用处
                                                              ↓
                                          形参和函数内局部变量自动释放
  • 实参必须和形参一一对应(个数、类型)
  • main 函数由系统自动调用,main 返回 → 程序结束
  • main 返回值:0 = 正常结束,非零 = 异常结束

Rust — 文件 I/O 练习

今天写了三个文件操作函数:

1. 统计文件行数File::open + BufReader::lines() 逐行迭代

2. 文件内容替换read_to_stringreplace → 先写 .tmp 临时文件 → rename 原子替换原文件

为什么要临时文件 + rename?直接覆盖原文件时如果中途崩溃,原文件就损坏了。

3. 递归计算目录大小symlink_metadata(不跟随符号链接,避免死循环),遇无权限文件打警告跳过而不是直接崩溃

思考

一个人应该依据什么评价自己?

以前人们习惯用外部标准评价自己:成功或失败、他人的认可或否定、财富、地位、结果。但这些评价本质上都是人类赋予的意义,并不是事物天然拥有的属性。"成功"和"失败"本身也是人的价值体系产生的概念。如果没有人类,没有评价主体,一幅画、一项技术、一次胜利或者失败,都只是一种存在状态。因此,人的价值不应该完全依赖外界评价。

关于王阳明"知行合一"的理解

它不是简单地把大道理全部记住然后强迫自己执行。真正的知行合一,是内心真正认可某件事情,并且行动自然符合这种认识。 这里的"心"不是普通的情绪和欲望,而是经过良知判断后的内心。如果只是因为舒服所以去做某件事情,并不代表知行合一。例如作弊——可能带来短暂利益和满足,但它违背了自己的原则,因此不是良知上的选择。真正的知行合一,是知道什么是正确的,并且愿意按照这个判断行动,即使没有外部监督。

如何认可自己,建立内核

一个人的自信不应该建立在"我一直成功,所以我相信自己"——这种自信很脆弱。更稳定的自信来源于:无论面对成功还是失败,我都有能力面对、调整和继续前进。 真正认可自己,不是认可每一次结果,而是认可自己的选择过程:是否违背自己的原则、是否持续成长、是否朝自己认可的方向前进。

关于坚持初心

"不忘初心"并不是永远坚持最初的想法,因为最初的想法可能包含幻想。真正应该坚持的是更深层的东西:表层目标可能改变(想成为某种职业,后来发现路径不适合,可以调整),但深层价值可以保持(想创造东西、想理解世界、想提升自己的能力)。

所以:改变方法,不一定是背叛初心。 真正需要判断的是:我是因为认识更深所以改变,还是因为遇到困难所以逃避。

对自己的观察

我发现自己已经形成了一些长期坚持:考试一直坚持不作弊,即使没有人监督;持续学习编程;持续写项目;持续思考技术、人生和价值问题;即使没有人关注,也愿意继续做自己认为有意义的事情。这些事情说明:我的行动已经不完全依赖外界评价,而是在建立自己的价值体系。

需要改进的地方

但是我也发现:自己还不能完全放松。如果一天完全不学习、不思考、不创造,就会感觉这一天被浪费。我的大脑似乎一直有一个后台程序运行——无论走路、学习甚至睡觉,都在思考问题。这既是一种优势,也可能成为压力。因为持续运行不等于持续成长。 人的成长不仅来自行动,也来自休息、沉淀和整合。休息不是浪费时间,而是成长过程的一部分。

真正强大的状态不是"我永远不能停止",而是**"我可以停下来,因为我知道自己还会继续前进。"**

最后的理解

人的内核不是来自"我永远正确",而来自**"即使发现自己错误,我也有能力面对并修正。"** 真正的坚定不是拒绝改变,而是在不断变化中,保持自己认可的方向。评价自己的标准应该逐渐从"别人是否认可我"转变为**"我是否忠于自己的原则,并且持续成为自己认可的人。"**

明日计划

  1. C 语言:跟课堂节奏,完成函数章节作业
  2. Rust:打算做个小项目