<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>基础部分 on 编程那些事儿</title><link>https://before80.github.io/prgms/C/basic/</link><description>Recent content in 基础部分 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 30 Mar 2026 14:59:23 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/C/basic/index.xml" rel="self" type="application/rss+xml"/><item><title>第 1 章：C 语言简介与历史演变</title><link>https://before80.github.io/prgms/C/basic/Chapter-01-Introduction-and-History/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-01-Introduction-and-History/</guid><description>&lt;h1 id="第-1-章c-语言简介与历史演变"&gt;第 1 章：C 语言简介与历史演变&lt;/h1&gt;
&lt;p&gt;想象一下，你穿越回了 1972 年的美国贝尔实验室。那时候的计算机还是个庞然大物——占用整栋楼的空调房，内存只有几十 KB，屏幕上跳动着绿色的字符。程序员们还在用汇编语言和机器直接对话，每写一行代码都得告诉 CPU &amp;ldquo;把这个寄存器里的数加到那个地址上去&amp;rdquo;。&lt;/p&gt;</description></item><item><title>第 2 章：开发环境安装与第一个程序</title><link>https://before80.github.io/prgms/C/basic/Chapter-02-Development-Environment/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-02-Development-Environment/</guid><description>&lt;h1 id="第-2-章开发环境安装与第一个程序"&gt;第 2 章：开发环境安装与第一个程序&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;上一章我们学会了 C 语言是什么、能干什么、前景如何，是不是已经摩拳擦掌、跃跃欲试了？但是等等——磨刀不误砍柴工！这一章咱们先来把&amp;quot;武器库&amp;quot;给搭建好。编程语言再好，也得有个趁手的家伙事儿不是？&lt;/p&gt;</description></item><item><title>第 3 章：C 程序基本结构</title><link>https://before80.github.io/prgms/C/basic/Chapter-03-Basic-Program-Structure/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-03-Basic-Program-Structure/</guid><description>&lt;h1 id="第-3-章c-程序基本结构"&gt;第 3 章：C 程序基本结构&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🧐 想象一下，你要建一座房子。首先你得知道房子有哪些&amp;quot;标配房间&amp;quot;吧？门在哪里、客厅怎么走、窗户朝哪开。C 程序也一样，有它固定的&amp;quot;房间格局&amp;quot;，你不按这个格局来，编译器（compiler）就一脸懵，不知道你想干嘛。&lt;/p&gt;</description></item><item><title>第 4 章：数据类型与变量</title><link>https://before80.github.io/prgms/C/basic/Chapter-04-Data-Types-and-Variables/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-04-Data-Types-and-Variables/</guid><description>&lt;h1 id="第-4-章数据类型与变量"&gt;第 4 章：数据类型与变量&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序员的三大幻觉：栈不会溢出、整数不会负、char 永远有符号。&amp;rdquo; —— 某不愿透露姓名的 C 大师&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;欢迎来到 C 语言最核心的章节之一：&lt;strong&gt;数据类型与变量&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>第 4B 章：作用域、链接与存储期 —— 程序的'地盘'之争</title><link>https://before80.github.io/prgms/C/basic/Chapter-04B-Scope-Linkage-Storage/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-04B-Scope-Linkage-Storage/</guid><description>&lt;h1 id="第-4b-章作用域链接与存储期--程序的地盘之争"&gt;第 4B 章：作用域、链接与存储期 —— 程序的&amp;quot;地盘&amp;quot;之争&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;C 语言的变量啊，它们也有自己的&amp;quot;势力范围&amp;rdquo;。有的变量是&amp;quot;宅男&amp;quot;，只在自己的小房间里活动；有的却是&amp;quot;社交达人&amp;quot;，满世界都能找到它。想知道你写的变量是哪种类型？那就跟我来！&amp;quot;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>第 4C 章：类型限定符与原子操作</title><link>https://before80.github.io/prgms/C/basic/Chapter-04C-Type-Qualifiers-and-Atomics/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-04C-Type-Qualifiers-and-Atomics/</guid><description>&lt;h1 id="第-4c-章类型限定符与原子操作"&gt;第 4C 章：类型限定符与原子操作&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎯 &lt;strong&gt;前置知识回顾&lt;/strong&gt;：本章是第 4 章的延伸章节。如果你已经掌握了变量、数据类型和基本运算，可以直接冲！如果你还在纠结 &lt;code&gt;int&lt;/code&gt; 和 &lt;code&gt;float&lt;/code&gt; 的区别，先去第 4 章打个卡，我们在这里等你。&lt;/p&gt;</description></item><item><title>第 5 章：运算符与表达式</title><link>https://before80.github.io/prgms/C/basic/Chapter-05-Operators-and-Expressions/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-05-Operators-and-Expressions/</guid><description>&lt;h1 id="第-5-章运算符与表达式"&gt;第 5 章：运算符与表达式&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序若无运算，恰如机器人只会站着发呆——有力气却使不出来。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;欢迎来到 C 语言的&amp;quot;十八般武艺&amp;quot;章节！运算符（Operator）和表达式（Expression）是让程序真正&amp;quot;动起来&amp;quot;的核心。我们在前几章学会了声明变量、输入输出，现在终于要给这台小机器装上&amp;quot;发动机&amp;quot;了。&lt;/p&gt;</description></item><item><title>第 6 章：控制流程——程序的'红绿灯'与'跑步机'</title><link>https://before80.github.io/prgms/C/basic/Chapter-06-Control-Flow/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-06-Control-Flow/</guid><description>&lt;h1 id="第-6-章控制流程程序的红绿灯与跑步机"&gt;第 6 章：控制流程——程序的&amp;quot;红绿灯&amp;quot;与&amp;quot;跑步机&amp;quot;&lt;/h1&gt;
&lt;p&gt;想象一下，你早上出门上班，脑子里其实一直在做各种决定：&lt;/p&gt;</description></item><item><title>第 7 章：函数——C 语言的'百变大咖'</title><link>https://before80.github.io/prgms/C/basic/Chapter-07-Functions/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-07-Functions/</guid><description>&lt;h1 id="第-7-章函数c-语言的百变大咖"&gt;第 7 章：函数——C 语言的&amp;quot;百变大咖&amp;quot;&lt;/h1&gt;
&lt;p&gt;嗨，朋友们！欢迎来到 C 语言最神奇的部分——函数（Function）！&lt;/p&gt;
&lt;p&gt;想象一下，你走进一家餐厅。服务员问你要什么，你说：&amp;ldquo;来一份宫保鸡丁！&amp;ldquo;然后厨房就开始忙活了——洗菜、切菜、炒菜、装盘，最后一盘香喷喷的宫保鸡丁就端到了你面前。你不需要知道厨房里发生了什么，你只需要&amp;quot;点菜&amp;quot;就行。&lt;/p&gt;</description></item><item><title>第 8 章：数组——程序员的储物神器</title><link>https://before80.github.io/prgms/C/basic/Chapter-08-Arrays/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-08-Arrays/</guid><description>&lt;h1 id="第-8-章数组程序员的储物神器"&gt;第 8 章：数组——程序员的储物神器&lt;/h1&gt;
&lt;p&gt;各位老铁，上一章我们学习了变量和数据类型，那感觉就像学会了造单个砖块。但是！你见过只盖一层楼的房子吗？除非你是霍比特人，否则你肯定需要楼房。同样的，程序世界也需要一种&amp;quot;数据结构&amp;quot;，能让你把一堆相关的变量打包存放管理。这就是我们今天的主角——&lt;strong&gt;数组（Array）&lt;/strong&gt;！&lt;/p&gt;</description></item><item><title>第 9 章：指针——C 语言的灵魂</title><link>https://before80.github.io/prgms/C/basic/Chapter-09-Pointers/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-09-Pointers/</guid><description>&lt;h1 id="第-9-章指针c-语言的灵魂"&gt;第 9 章：指针——C 语言的灵魂&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;如果说 C 语言是一把瑞士军刀，那指针就是军刀上最锋利的那片刀刃。学会了指针，你就能在 C语言的世界里上天入地；学不会指针，那你可能连门都摸不着。指针是 C 语言的精髓，也是让无数初学者魂牵梦萦、夜不能寐的&amp;quot;罪魁祸首&amp;quot;。但别怕！看完这一章，你会拍着大腿说：&amp;ldquo;就这？&amp;rdquo;&lt;/p&gt;</description></item><item><title>第 10 章：字符串处理 —— C 语言的文字魔法</title><link>https://before80.github.io/prgms/C/basic/Chapter-10-String-Handling/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-10-String-Handling/</guid><description>&lt;h1 id="第-10-章字符串处理--c-语言的文字魔法"&gt;第 10 章：字符串处理 —— C 语言的文字魔法&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章你会学到什么？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;字符串的&amp;quot;真面目&amp;quot;——它其实是个披着羊皮的数组&lt;/li&gt;
&lt;li&gt;为什么你的字符串一会儿能改，一会儿不能改&lt;/li&gt;
&lt;li&gt;一堆让你又爱又恨的字符串函数，有的安全，有的危险&lt;/li&gt;
&lt;li&gt;字符串和数字之间的&amp;quot;翻译&amp;quot;技巧&lt;/li&gt;
&lt;li&gt;宽字符和 Unicode：让你的程序说&amp;quot;世界语&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;想象一下，如果你是一个厨师，字符串就是你的菜谱。菜谱上写满了各种&amp;quot;指令&amp;quot;（字符），而你（CPU）需要按照顺序一个一个&amp;quot;执行&amp;quot;它们。但是问题来了——CPU 怎么知道菜谱在哪里结束？总不能让它一直读下去读到别人的菜谱去吧？&lt;/p&gt;</description></item><item><title>第 11 章：结构体、共用体与枚举</title><link>https://before80.github.io/prgms/C/basic/Chapter-11-Structures-Unions-Enums/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-11-Structures-Unions-Enums/</guid><description>&lt;h1 id="第-11-章结构体共用体与枚举"&gt;第 11 章：结构体、共用体与枚举&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;数据结构学得好，C 语言就学会了一大半。&amp;rdquo; —— 某位不愿意透露姓名的 C 语言老师&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;欢迎来到 C 语言最&amp;quot;成人&amp;quot;的一章！前面我们学的数组，就像是一个装满相同类型鸡蛋的盒子。但现实世界的数据可不是这么单纯的——你的人口普查表里，有姓名（字符串）、年龄（整数）、身高（浮点数）、血型（枚举）……这些乱七八糟的东西，怎么塞进一个整齐的数组里？&lt;/p&gt;</description></item><item><title>第 12 章：初始化 —— 给变量一个'人生起点'</title><link>https://before80.github.io/prgms/C/basic/Chapter-12-Initialization/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-12-Initialization/</guid><description>&lt;h1 id="第-12-章初始化--给变量一个人生起点"&gt;第 12 章：初始化 —— 给变量一个&amp;quot;人生起点&amp;quot;&lt;/h1&gt;
&lt;p&gt;嗨，未来的 C 语言大师！欢迎来到第 12 章！&lt;/p&gt;
&lt;p&gt;你有没有想过，当我们声明一个变量的时候，它在内存里到底是什么状态？是一片空白？还是随机炫彩的&amp;quot;垃圾&amp;quot;数据？&lt;/p&gt;</description></item><item><title>第 13 章：预处理指令——C 语言的'剧本编辑室'</title><link>https://before80.github.io/prgms/C/basic/Chapter-13-Preprocessor/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-13-Preprocessor/</guid><description>&lt;h1 id="第-13-章预处理指令c-语言的剧本编辑室"&gt;第 13 章：预处理指令——C 语言的&amp;quot;剧本编辑室&amp;quot;&lt;/h1&gt;
&lt;p&gt;欢迎来到第 13 章！如果你觉得前面的指针、数组、函数已经够刺激了，那预处理指令这章绝对会让你大开眼界。&lt;/p&gt;</description></item><item><title>第 14 章：动态内存管理 —— 程序的'房产证'之争</title><link>https://before80.github.io/prgms/C/basic/Chapter-14-Dynamic-Memory/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-14-Dynamic-Memory/</guid><description>&lt;h1 id="第-14-章动态内存管理--程序的房产证之争"&gt;第 14 章：动态内存管理 —— 程序的&amp;quot;房产证&amp;quot;之争&lt;/h1&gt;
&lt;p&gt;想象一下，你租房子住。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;静态内存&lt;/strong&gt; 就像你买了一套公寓，大小固定，格局固定，你想在客厅放张床？门都没有！因为公寓的墙是&amp;quot;浇筑&amp;quot;好的，不能改。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态内存&lt;/strong&gt; 就像你包下了一整块空地，今天想建小茅屋，明天想建大别墅，后天拆了建游泳池——随你心情，想怎么折腾就怎么折腾！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;动态内存管理，是 C 语言中最强大、最危险、也是面试官最爱的技能之一。学会了，你就是&amp;quot;内存大亨&amp;quot;；学废了，分分钟把程序写成&amp;quot;内存凶杀案现场&amp;quot;。准备好了吗？我们出发！&lt;/p&gt;</description></item><item><title>第 15 章：文件操作 —— 程序的'读心术'与'记忆术'</title><link>https://before80.github.io/prgms/C/basic/Chapter-15-File-Operations/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-15-File-Operations/</guid><description>&lt;h1 id="第-15-章文件操作--程序的读心术与记忆术"&gt;第 15 章：文件操作 —— 程序的&amp;quot;读心术&amp;quot;与&amp;quot;记忆术&amp;quot;&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章你会学到什么？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;什么是流（stream）—— 数据流动的&amp;quot;管道&amp;quot;&lt;/li&gt;
&lt;li&gt;标准输入输出的三兄弟：stdin、stdout、stderr&lt;/li&gt;
&lt;li&gt;如何打开和关闭文件——敲门和关门的基本礼仪&lt;/li&gt;
&lt;li&gt;各种文件读取写入姿势——总有一款适合你&lt;/li&gt;
&lt;li&gt;文件指针的魔法——随意穿梭在文件的任何位置&lt;/li&gt;
&lt;li&gt;大文件处理的技巧——突破 2GB 天花板&lt;/li&gt;
&lt;li&gt;C23 的酷炫新特性——位置参数&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;想象一下这个场景：你昨天写了一篇超级重要的日记，记录了你暗恋隔壁班小美的所有心路历程。结果今天一开机，日记没了！程序崩溃、关机、蓝屏——管它什么，反正你的心血结晶就这么人间蒸发了。&lt;/p&gt;</description></item><item><title>第 16 章：输入输出详解</title><link>https://before80.github.io/prgms/C/basic/Chapter-16-Input-Output/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-16-Input-Output/</guid><description>&lt;h1 id="第-16-章输入输出详解"&gt;第 16 章：输入输出详解&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序的本质，就是数据进来、转一圈、结果出去。没有输入输出的程序，就像一台永远不启动的发动机——再强大也只能是个摆设。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第 17 章：标准库常用函数汇总</title><link>https://before80.github.io/prgms/C/basic/Chapter-17-Standard-Library/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-17-Standard-Library/</guid><description>&lt;h1 id="第-17-章标准库常用函数汇总"&gt;第 17 章：标准库常用函数汇总&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;不要重复造轮子&amp;rdquo;——这是程序员的第一金律。C 语言标准库就是那个轮子仓库，里面装满了各种现成的、好用的工具函数。本章我们就来清点这个大仓库，看看里面有哪些宝贝可以让我们事半功倍！&lt;/p&gt;</description></item><item><title>第 18 章：位操作与位域 —— 计算机底层的'积木游戏'</title><link>https://before80.github.io/prgms/C/basic/Chapter-18-Bit-Operations/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-18-Bit-Operations/</guid><description>&lt;h1 id="第-18-章位操作与位域--计算机底层的积木游戏"&gt;第 18 章：位操作与位域 —— 计算机底层的&amp;quot;积木游戏&amp;quot;&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章内容烧脑指数：⭐⭐⭐⭐⭐&lt;br&gt;
阅读建议：准备好咖啡，跟我一起潜入 0 和 1 的奇妙世界！&lt;/p&gt;</description></item><item><title>第 19 章：构建系统与工程管理</title><link>https://before80.github.io/prgms/C/basic/Chapter-19-Build-Systems/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-19-Build-Systems/</guid><description>&lt;h1 id="第-19-章构建系统与工程管理"&gt;第 19 章：构建系统与工程管理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;写代码一时爽，编译部署火葬场。&amp;rdquo; —— 每一个被 Makefile 折磨过的程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;恭喜你来到 C 语言学习的终点站——不对，是&lt;strong&gt;中转站&lt;/strong&gt;！前面 18 章你学会了怎么用 C 写逻辑、写算法、写数据结构，感觉自己已经天下无敌了？很好，现在我们来聊聊当你写完代码之后，&lt;strong&gt;怎么让它变成可执行文件&lt;/strong&gt;，以及&lt;strong&gt;怎么管理一个正经的工程&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>第 20 章：调试技术——与 Bug 的斗智斗勇</title><link>https://before80.github.io/prgms/C/basic/Chapter-20-Debugging/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-20-Debugging/</guid><description>&lt;h1 id="第-20-章调试技术与-bug-的斗智斗勇"&gt;第 20 章：调试技术——与 Bug 的斗智斗勇&lt;/h1&gt;
&lt;p&gt;![调试流程图](data:image/svg+xml,%3Csvg xmlns=&amp;lsquo;&lt;a href="http://www.w3.org/2000/svg'"&gt;http://www.w3.org/2000/svg'&lt;/a&gt; viewBox=&amp;lsquo;0 0 800 400&amp;rsquo;%3E%3Crect width=&amp;lsquo;800&amp;rsquo; height=&amp;lsquo;400&amp;rsquo; fill=&amp;rsquo;%23f0f4f8&amp;rsquo;/%3E%3Crect x=&amp;lsquo;50&amp;rsquo; y=&amp;lsquo;50&amp;rsquo; width=&amp;lsquo;150&amp;rsquo; height=&amp;lsquo;60&amp;rsquo; rx=&amp;lsquo;10&amp;rsquo; fill=&amp;rsquo;%23e74c3c&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;2&amp;rsquo;/%3E%3Ctext x=&amp;lsquo;125&amp;rsquo; y=&amp;lsquo;85&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;lsquo;white&amp;rsquo; font-size=&amp;lsquo;14&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo;%3E发现Bug%3C/text%3E%3Crect x=&amp;lsquo;325&amp;rsquo; y=&amp;lsquo;50&amp;rsquo; width=&amp;lsquo;150&amp;rsquo; height=&amp;lsquo;60&amp;rsquo; rx=&amp;lsquo;10&amp;rsquo; fill=&amp;rsquo;%23f39c12&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;2&amp;rsquo;/%3E%3Ctext x=&amp;lsquo;400&amp;rsquo; y=&amp;lsquo;85&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;lsquo;white&amp;rsquo; font-size=&amp;lsquo;14&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo;%3E定位问题%3C/text%3E%3Crect x=&amp;lsquo;600&amp;rsquo; y=&amp;lsquo;50&amp;rsquo; width=&amp;lsquo;150&amp;rsquo; height=&amp;lsquo;60&amp;rsquo; rx=&amp;lsquo;10&amp;rsquo; fill=&amp;rsquo;%2327ae60&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;2&amp;rsquo;/%3E%3Ctext x=&amp;lsquo;675&amp;rsquo; y=&amp;lsquo;85&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;lsquo;white&amp;rsquo; font-size=&amp;lsquo;14&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo;%3E修复Bug%3C/text%3E%3Cpath d=&amp;lsquo;M200 80 L325 80&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;3&amp;rsquo; marker-end=&amp;lsquo;url(%23arrow)&amp;rsquo;/%3E%3Cpath d=&amp;lsquo;M475 80 L600 80&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;3&amp;rsquo; marker-end=&amp;lsquo;url(%23arrow)&amp;rsquo;/%3E%3Crect x=&amp;lsquo;200&amp;rsquo; y=&amp;lsquo;180&amp;rsquo; width=&amp;lsquo;400&amp;rsquo; height=&amp;lsquo;150&amp;rsquo; rx=&amp;lsquo;15&amp;rsquo; fill=&amp;rsquo;%233498db&amp;rsquo; stroke=&amp;rsquo;%232c3e50&amp;rsquo; stroke-width=&amp;lsquo;2&amp;rsquo; opacity=&amp;lsquo;0.2&amp;rsquo;/%3E%3Ctext x=&amp;lsquo;400&amp;rsquo; y=&amp;lsquo;220&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;rsquo;%232c3e50&amp;rsquo; font-size=&amp;lsquo;16&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo; font-weight=&amp;lsquo;bold&amp;rsquo;%3E调试工具箱%3C/text%3E%3Ctext x=&amp;lsquo;400&amp;rsquo; y=&amp;lsquo;250&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;rsquo;%232c3e50&amp;rsquo; font-size=&amp;lsquo;13&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo;%3EGDB / LLDB / Valgrind / ASan / UBSan / printf%3C/text%3E%3Ctext x=&amp;lsquo;400&amp;rsquo; y=&amp;lsquo;280&amp;rsquo; text-anchor=&amp;lsquo;middle&amp;rsquo; fill=&amp;rsquo;%232c3e50&amp;rsquo; font-size=&amp;lsquo;13&amp;rsquo; font-family=&amp;lsquo;Arial&amp;rsquo;%3E核心转储 / 远程调试 / 日志分析%3C/text%3E%3Cdefs%3E%3Cmarker id=&amp;lsquo;arrow&amp;rsquo; markerWidth=&amp;lsquo;10&amp;rsquo; markerHeight=&amp;lsquo;10&amp;rsquo; refX=&amp;lsquo;9&amp;rsquo; refY=&amp;lsquo;3&amp;rsquo; orient=&amp;lsquo;auto&amp;rsquo;%3E%3Cpath d=&amp;lsquo;M0,0 L0,6 L9,3 z&amp;rsquo; fill=&amp;rsquo;%232c3e50&amp;rsquo;/%3E%3C/marker%3E%3C/defs%3E%3C/svg%3E)&lt;/p&gt;</description></item><item><title>第 21 章：链接与多文件项目——代码的'拼图大赛'</title><link>https://before80.github.io/prgms/C/basic/Chapter-21-Linking/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-21-Linking/</guid><description>&lt;h1 id="第-21-章链接与多文件项目代码的拼图大赛"&gt;第 21 章：链接与多文件项目——代码的&amp;quot;拼图大赛&amp;quot;&lt;/h1&gt;
&lt;p&gt;嗨，亲爱的读者！欢迎来到 C 语言进阶的又一关键战场。&lt;/p&gt;
&lt;p&gt;想象一下，你是一个大型乐高城市的设计师。你不会把城市的每一块砖都捏在手里——那太蠢了！你会把不同的模块分开做：办公楼一块、居民楼一块、桥梁一块……然后在最后时刻，把它们咔嚓一声拼在一起，变成一座完整的城市。&lt;/p&gt;</description></item><item><title>第 22 章：进程、信号与系统调用</title><link>https://before80.github.io/prgms/C/basic/Chapter-22-Processes-Signals/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-22-Processes-Signals/</guid><description>&lt;h1 id="第-22-章进程信号与系统调用"&gt;第 22 章：进程、信号与系统调用&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;📌 本章代码实验环境为 Linux (GCC)。Windows 用户建议使用 WSL2，或者把本章当小说看也是极好的——毕竟，程序员的世界里，理论比代码更精彩。&lt;/p&gt;</description></item><item><title>第 23 章：进程间通信（IPC）</title><link>https://before80.github.io/prgms/C/basic/Chapter-23-IPC/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-23-IPC/</guid><description>&lt;h1 id="第-23-章进程间通信ipc"&gt;第 23 章：进程间通信（IPC）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;独木不成林，单进程不成事。&amp;rdquo; — 当你的程序想要和隔壁进程唠唠嗑、传传纸条、甚至共享一块&amp;quot;秘密基地&amp;quot;时，就需要进程间通信了。&lt;/p&gt;</description></item><item><title>第 24 章：线程与并发编程</title><link>https://before80.github.io/prgms/C/basic/Chapter-24-Threads/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-24-Threads/</guid><description>&lt;h1 id="第-24-章线程与并发编程"&gt;第 24 章：线程与并发编程&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;人生最痛苦的事是什么？是你在洗碗，女朋友在催你陪她聊天，老板在催你交报告，而你只能一件事一件事来。欢迎来到并发编程的世界——在这里，你可以同时&amp;quot;分身乏术&amp;quot;变成&amp;quot;分身有术&amp;rdquo;！&amp;quot;&lt;/p&gt;</description></item><item><title>第 25 章：网络编程——让计算机聊聊天</title><link>https://before80.github.io/prgms/C/basic/Chapter-25-Network-Programming/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-25-Network-Programming/</guid><description>&lt;h1 id="第-25-章网络编程让计算机聊聊天"&gt;第 25 章：网络编程——让计算机聊聊天&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章你会：理解 Socket 是什么，学会用 C 语言写 TCP/UDP 程序，搞定字节序、地址转换、I/O 多路复用，还能顺手处理 Windows 的 Winsock。读完之后，你就能让两台电脑隔空对话了！&lt;/p&gt;</description></item><item><title>第 26 章：Linux 内核与开源项目阅读方法</title><link>https://before80.github.io/prgms/C/basic/Chapter-26-Reading-Large-Code/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-26-Reading-Large-Code/</guid><description>&lt;h1 id="第-26-章linux-内核与开源项目阅读方法"&gt;第 26 章：Linux 内核与开源项目阅读方法&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;恭喜你！能走到这一章，说明你已经不是一个只会写 &lt;code&gt;Hello World&lt;/code&gt; 的小白了。你甚至已经能够用 C 语言写一些小项目，解决实际问题。但现在你可能面临一个终极挑战——阅读大型 C 代码。想象一下，当你打开一个几十万行代码的项目，满屏都是陌生的函数和结构体，那种感觉就像走进了一座没有地图的迷宫。没关系！本章就是你的&amp;quot;大型代码阅读指南&amp;quot;，专门为你解锁 Linux 内核、Git、Redis、SQLite、NGINX 这些顶级开源项目的阅读姿势。&lt;/p&gt;</description></item><item><title>第 27 章：C 语言高级主题</title><link>https://before80.github.io/prgms/C/basic/Chapter-27-Advanced-Topics/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-27-Advanced-Topics/</guid><description>&lt;h1 id="第-27-章c-语言高级主题"&gt;第 27 章：C 语言高级主题&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎉 恭喜你来到 C 语言的高阶世界！如果你是一路从第 1 章打怪升级到这里的老玩家，那今天我们要聊的内容，绝对是&amp;quot;隐藏关卡&amp;quot;级别的 —— 普通人听都没听过，用得好的人都是 C 语言界的老司机。&lt;/p&gt;</description></item><item><title>第 28 章：调试、测试与代码质量</title><link>https://before80.github.io/prgms/C/basic/Chapter-28-Debugging-Testing/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-28-Debugging-Testing/</guid><description>&lt;h1 id="第-28-章调试测试与代码质量"&gt;第 28 章：调试、测试与代码质量&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;代码写出来的那一刻，它就已经错了。问题是——错在哪里？&amp;rdquo;
—— 某位被 bug 折磨了二十年的 C 语言老兵&lt;/p&gt;</description></item><item><title>第 29 章 各 C 标准详解</title><link>https://before80.github.io/prgms/C/basic/Chapter-29-Standards-Details/</link><pubDate>Sun, 29 Mar 2026 22:34:00 +0800</pubDate><guid>https://before80.github.io/prgms/C/basic/Chapter-29-Standards-Details/</guid><description>&lt;h1 id="第-29-章-各-c-标准详解"&gt;第 29 章 各 C 标准详解&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;C 语言是一门古老的语言，但它并不服老。从 1972 年诞生至今，它一直在进化，始终站在系统编程的第一线。&amp;rdquo; 本章我们就来扒一扒 C 标准的进化史——那些让人又爱又恨的特性，那些&amp;quot;我当年居然这么写代码&amp;quot;的黑历史，以及那些让你代码瞬间高大上的新语法。&lt;/p&gt;</description></item></channel></rss>