Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Mdr-C-Tutorial/C

梦猫大典 - Mdr C Tutorial

教程讲义及示例代码开源仓库

GitHub Repo stars License Language VitePress GitHub Actions zread

项目热度与支持

如果您觉得本项目对您有帮助,请不吝点亮 Star ⭐

Star History Chart

仓库概览

#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,一个致力于共同学习与进步的知识库。

  1. 定位:教程讲义
    • 致贡献者:摒弃冗余引导,直击核心内容,专注于干货输出。
    • 致读者:高效获取 C 语言计算机科学相关知识,无障碍阅读。
  2. 核心理念
    • 准确的基础上,力争简洁生动
  3. 愿景
    • 此教程非一时兴起之作,而是怀揣“为往圣继绝学,为万世开太平”之愿,深思熟虑打磨而成。
  4. 寄语
    • 得天独厚者,替天行善!

构建与部署

本项目使用 VitePress 构建,并采用 GitHub Actions 实现自动化部署。

本地开发

请确保您的环境中已安装最新版本的 pnpm

# 1. 安装项目依赖
pnpm i

# 2. 启动本地开发服务器
pnpm dev

# 3. 构建静态文件(用于生产环境)
pnpm build

文档规范

为确保内容的一致性与专业性,所有 Markdown 文档需遵循以下规范。

标题与层级

  1. 层级结构:由一级标题开始,依次递减。层级不应超过四级。若内容过多,建议拆分为多篇文档。
  2. 编号规则(适用于 /教程/杂项/工具和环境 目录):
    • 一级标题:不编号。
    • 二级标题1.2.(数字后加小数点)。
    • 三级标题1.11.2(末尾不加小数点)。
    • 四级标题1.1.11.1.2(末尾不加小数点)。

格式与排版

  1. 空行规则
    • 代码块列表前后各保留一个空行。
    • 文件结尾保留一个空行。
    • 禁止在文件任何位置出现连续两个空行。
    • 段落之间保留一个空行。
    • 换行不换段:行尾添加两个空格,无空行。
  2. 文本样式
    • 强调:使用 ** **
    • 次强调:使用 _ _
    • 行内代码:使用 ` `
    • 引用:使用 >
    • 书名/文章名:使用 **_ _**
  3. 空格使用
    • ` `$ $ 前后各空一格(中文标点前后除外)。
    • 中西文字符间、中文与数字间需添加空格。
  4. 特殊区块
    • 信息补充:::: info :::
    • 小技巧:::: tip :::
    • 注意事项:::: warning :::
    • 代码输出:使用 ```ansi ``` 包裹。

标点与术语

  1. 标点符号
    • 中文语境下使用全角标点(如全角括号、冒号)。
    • 严禁省略段尾句号。
    • 正确使用顿号、逗号、分号和句号,杜绝“一逗到底”。
  2. 用词规范
    • 严格区分的地得他她它
    • 审慎使用数量词(尤其是“一个”)。
    • 专有名词必须大写。
  3. 术语 (Terminology)
    • 首次出现时,在半角小括号内给出英文原词首字母缩略语 (Acronym)
    • 引用源:主要参考 维基百科C++ 参考手册
    • 格式:括号外两侧各空一格,括号内无空格;英文原词使用默认字体(不加粗/斜体/代码块)。
    • 使用策略:初始章节以“汉语表述”为主,进阶章节以“缩略语”为主。

媒体与资源

  1. 图片规范
    • 存储目录:/images/
    • 引入方式:绝对路径
    • 命名规则:描述性命名,连字符分隔。
      • 截图:PNG 格式,三位数字命名(如 001-memory-layout.png)。
      • 拍照:JPEG 格式,三位数字命名(如 001-keyboard-layout.jpg)。
  2. 引用致谢:每篇文档结尾须注明引用内容的出处。

语言风格

  1. 总体要求:正式的中文白话,杜绝口语、语病及主观性措辞。
  2. 修辞建议:尽量避免反问、设问和借喻。
  3. 精准度:使用清晰的修饰限定成分,避免含混或过度夸张;引用数据支持论点。
  4. 一致性:保持全仓库文档风格统一。

代码规范

本仓库 C 语言代码需遵循以下标准。

环境与编译

  1. 构建系统:项目级代码需包含构建文件(如 CMakeLists.txtxmake.lua)。
  2. 文件后缀:源文件 .c,头文件 .h
  3. 标准兼容
    • 兼容新版 GCC 和 Clang。
    • 采用 C11 及以上标准(使用新特性时需标注)。
    • “语法和标准库”中的代码须在开启 -Wall -Wextra 选项下无警告通过。

风格与命名

  1. 格式化:基于 LLVM 样式,4 空格缩进。

    {
      "BasedOnStyle": "LLVM",
      "IndentWidth": 4
    }
  2. 命名约定

    • :全大写,下划线分隔。
    • 其他标识符:全小写,下划线分隔。
    • 禁止使用拼音。
  3. 控制流ifelseforwhile 后必须使用复合语句(即 { ... })。

教程结构

本教程采用 模块 / 部分 / 章 / 节 的层级结构。

模块概览

教程划分为四大模块,合称“梦猫大典”:

  1. 梦猫大典Ⅰ:语法和标准库
  2. 梦猫大典Ⅱ:数据结构和算法
  3. 梦猫大典Ⅲ:项目实战
  4. 梦猫大典Ⅳ:嵌入式开发

组织逻辑

  • 部分:模块下的逻辑分组(如“语法”、“标准库”)。换部分时不重置章序号。
  • :主要知识单元(如“第一章:在开始编程之前”)。
  • :章的细分,用于增强可读性。换章时重置节序号。
  • 习题:每章或每节末尾均配有对应习题。

交互特性与组件

为了提供沉浸式的学习体验,本教程开发并集成了一系列自定义 Vue 组件:

  1. 终端模拟器 (<TerminalWindow>) 模拟真实的命令行终端窗口,用于展示构建命令、程序输出及 Shell 交互过程,告别枯燥的纯文本代码块。

  2. 代码对比视图 (<CodeCompare>) 支持左右并排的代码差异对比。用于直观展示错误写法 vs 正确写法。

  3. 交互式学习 (<Quiz>, <Exercise>)

    • Quiz:内嵌的选择题与填空题,用于章节后的即时知识点自测。
    • Exercise:针对性的编程练习描述与提示,引导读者动手实践。
  4. 术语标注 (<Term>) 统一计算机专业术语的视觉呈现,确保概念传递的准确性与一致性。

读者预备要求

为获得最佳学习效果,建议读者具备以下素质:

  1. 🧠 独立思考的能力。
  2. 🔍 勤于搜索的习惯(善于处理关联概念)。
  3. 📖 语言基础:理解中文白话,具备一定的英语水平(建议 CEFR B2)。
  4. 🧮 数学基础(仅针对数据结构与算法模块):
    • 高中数学、数理逻辑基础、微积分。
    • 基础的概率论、数论及图论。

许可证

本作品采用 CC BY-NC-SA 4.0 许可协议。

CC BY-NC-SA 4.0

转载或引用规则

  1. 署名:必须注明作者及原文链接。
  2. 非商业:不得用于任何商业用途。
  3. 共享:修改后的内容必须以相同的许可协议发布。

参考资料

本教程编写过程中参考了以下权威资料:

About

Mdr's c tutorial

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 18