如果您觉得本项目对您有帮助,请不吝点亮 Star ⭐
#define INTRODUCTION 52
// 向着星辰与深渊,欢迎来到 mdr 的 C 语言教程!
#define INFORMATION 'C'
// B 站账号 Minsecrus
// GitHub 账号 Minsecrus
// QQ 交流群 885719573
#include <stdio.h>
int main(int argc, char* argv[]){
printf("%d %c", INTRODUCTION, INFORMATION);
return 0;
}欢迎来到 Mdr's C Tutorial,一个致力于共同学习与进步的知识库。
- 定位:教程讲义
- 致贡献者:摒弃冗余引导,直击核心内容,专注于干货输出。
- 致读者:高效获取 C 语言及计算机科学相关知识,无障碍阅读。
- 核心理念
- 在准确的基础上,力争简洁与生动。
- 愿景
- 此教程非一时兴起之作,而是怀揣“为往圣继绝学,为万世开太平”之愿,深思熟虑打磨而成。
- 寄语
- 得天独厚者,替天行善!
本项目使用 VitePress 构建,并采用 GitHub Actions 实现自动化部署。
请确保您的环境中已安装最新版本的 pnpm。
# 1. 安装项目依赖
pnpm i
# 2. 启动本地开发服务器
pnpm dev
# 3. 构建静态文件(用于生产环境)
pnpm build为确保内容的一致性与专业性,所有 Markdown 文档需遵循以下规范。
- 层级结构:由一级标题开始,依次递减。层级不应超过四级。若内容过多,建议拆分为多篇文档。
- 编号规则(适用于
/教程和/杂项/工具和环境目录):- 一级标题:不编号。
- 二级标题:
1.、2.(数字后加小数点)。 - 三级标题:
1.1、1.2(末尾不加小数点)。 - 四级标题:
1.1.1、1.1.2(末尾不加小数点)。
- 空行规则:
- 代码块和列表前后各保留一个空行。
- 文件结尾保留一个空行。
- 禁止在文件任何位置出现连续两个空行。
- 段落之间保留一个空行。
- 换行不换段:行尾添加两个空格,无空行。
- 文本样式:
- 强调:使用
** **。 - 次强调:使用
_ _。 行内代码:使用` `。- 引用:使用
>。 - 书名/文章名:使用
**_ _**。
- 强调:使用
- 空格使用:
` `和$ $前后各空一格(中文标点前后除外)。- 中西文字符间、中文与数字间需添加空格。
- 特殊区块:
- 信息补充:
::: info ::: - 小技巧:
::: tip ::: - 注意事项:
::: warning ::: - 代码输出:使用
```ansi ```包裹。
- 信息补充:
- 标点符号:
- 中文语境下使用全角标点(如全角括号、冒号)。
- 严禁省略段尾句号。
- 正确使用顿号、逗号、分号和句号,杜绝“一逗到底”。
- 用词规范:
- 严格区分的地得、他她它。
- 审慎使用数量词(尤其是“一个”)。
- 专有名词必须大写。
- 术语 (Terminology):
- 图片规范:
- 存储目录:
/images/。 - 引入方式:绝对路径。
- 命名规则:描述性命名,连字符分隔。
- 截图:PNG 格式,三位数字命名(如
001-memory-layout.png)。 - 拍照:JPEG 格式,三位数字命名(如
001-keyboard-layout.jpg)。
- 截图:PNG 格式,三位数字命名(如
- 存储目录:
- 引用致谢:每篇文档结尾须注明引用内容的出处。
- 总体要求:正式的中文白话,杜绝口语、语病及主观性措辞。
- 修辞建议:尽量避免反问、设问和借喻。
- 精准度:使用清晰的修饰限定成分,避免含混或过度夸张;引用数据支持论点。
- 一致性:保持全仓库文档风格统一。
本仓库 C 语言代码需遵循以下标准。
- 构建系统:项目级代码需包含构建文件(如
CMakeLists.txt或xmake.lua)。 - 文件后缀:源文件
.c,头文件.h。 - 标准兼容:
- 兼容新版 GCC 和 Clang。
- 采用 C11 及以上标准(使用新特性时需标注)。
- “语法和标准库”中的代码须在开启
-Wall -Wextra选项下无警告通过。
-
格式化:基于 LLVM 样式,4 空格缩进。
{ "BasedOnStyle": "LLVM", "IndentWidth": 4 } -
命名约定:
- 宏:全大写,下划线分隔。
- 其他标识符:全小写,下划线分隔。
- 禁止使用拼音。
-
控制流:
if、else、for、while后必须使用复合语句(即{ ... })。
本教程采用 模块 / 部分 / 章 / 节 的层级结构。
教程划分为四大模块,合称“梦猫大典”:
- 梦猫大典Ⅰ:语法和标准库
- 梦猫大典Ⅱ:数据结构和算法
- 梦猫大典Ⅲ:项目实战
- 梦猫大典Ⅳ:嵌入式开发
- 部分:模块下的逻辑分组(如“语法”、“标准库”)。换部分时不重置章序号。
- 章:主要知识单元(如“第一章:在开始编程之前”)。
- 节:章的细分,用于增强可读性。换章时重置节序号。
- 习题:每章或每节末尾均配有对应习题。
为了提供沉浸式的学习体验,本教程开发并集成了一系列自定义 Vue 组件:
-
终端模拟器 (
<TerminalWindow>) 模拟真实的命令行终端窗口,用于展示构建命令、程序输出及 Shell 交互过程,告别枯燥的纯文本代码块。 -
代码对比视图 (
<CodeCompare>) 支持左右并排的代码差异对比。用于直观展示错误写法 vs 正确写法。 -
交互式学习 (
<Quiz>,<Exercise>)- Quiz:内嵌的选择题与填空题,用于章节后的即时知识点自测。
- Exercise:针对性的编程练习描述与提示,引导读者动手实践。
-
术语标注 (
<Term>) 统一计算机专业术语的视觉呈现,确保概念传递的准确性与一致性。
为获得最佳学习效果,建议读者具备以下素质:
- 🧠 独立思考的能力。
- 🔍 勤于搜索的习惯(善于处理关联概念)。
- 📖 语言基础:理解中文白话,具备一定的英语水平(建议 CEFR B2)。
- 🧮 数学基础(仅针对数据结构与算法模块):
- 高中数学、数理逻辑基础、微积分。
- 基础的概率论、数论及图论。
本作品采用 CC BY-NC-SA 4.0 许可协议。
转载或引用规则:
- 署名:必须注明作者及原文链接。
- 非商业:不得用于任何商业用途。
- 共享:修改后的内容必须以相同的许可协议发布。
本教程编写过程中参考了以下权威资料:
- ISO C standard
- C++ 参考手册
- Linux man-pages
- C Primer Plus (ISBN 978-0-321-92842-9)
- Modern C (ISBN 978-1-638-35065-1)
- C Programming: A Modern Approach (ISBN 978-0-393-87184-5)
- C 程序设计语言 (ISBN 978-0-133-08621-8)
- 算法导论 (ISBN 978-7-111-40701-0)
- 计算机程序设计艺术
- 陶哲轩实分析 (ISBN 978-7-115-48025-5)
- Let's Build a Simple Database
- pldocs
- OSDEV
- Hello 算法
- 360 安全规则集合