Dev-C++ 初学者入门指南:从安装配置到项目实战全解析
1. 项目概述为什么Dev-C依然是初学者的首选如果你刚开始接触C或C编程面对Visual Studio、CLion、VS Code这些功能强大的现代IDE可能会感到一丝迷茫和臃肿。这时候一个名字可能会反复出现在老鸟们的推荐列表里Dev-C。这个诞生于1998年的IDE至今仍在全球数百万学生和初学者的电脑上运行。它没有华丽的界面没有云同步也没有智能的AI补全但它精准地解决了一个核心问题让编程新手以最简单、最直接的方式写代码、编译代码、看到结果。我当年就是从Dev-C入的门后来即使换用了更专业的工具也依然会用它来快速验证一些简单的算法思路。这篇文章我就从一个过来人的角度带你彻底玩转Dev-C从安装配置到项目实战再到那些官方手册里不会写的“坑”和技巧。Dev-C的核心价值在于其极致的轻量与专注。它是一个纯粹的Windows平台C/C集成开发环境内置了MinGW GCC编译器。这意味着你下载一个几十兆的安装包点几下鼠标就获得了一个完整的、能编译标准C/C代码的编程工作站。你不需要单独配置编译器路径不需要处理复杂的项目依赖更不会被海量的插件和功能分散注意力。对于学习数据结构、算法、面向过程/对象编程基础而言这种“开箱即用”的体验至关重要。它能让你把宝贵的精力集中在理解语法、逻辑和算法本身而不是浪费在环境配置的泥潭里。接下来我会分步拆解它的使用全流程并分享我积累下来的一些实战心得。2. 核心细节解析与实操要点2.1 获取与安装避开陷阱一步到位虽然网络上充斥着各种所谓的“Dev-C中文版”、“绿色版”下载链接但我强烈建议你只从官方源获取安装包。原因很简单安全、纯净、无捆绑。根据提供的官方信息Dev-C的主站是明确的。你可以直接搜索“Dev-C Official Website”找到它。在官网你会看到“Download Dev-C 5”的醒目按钮版本通常是类似5.0 beta 9.2这样的迭代版内置了MinGW/GCC 3.4.2编译器和GDB 5.2.1调试器。这个组合对于学习C98/03以及部分C11标准的内容已经完全足够。安装过程本身是傻瓜式的但有几个关键选择点决定了你后续的使用体验安装语言选择安装程序启动后会提示选择语言。虽然软件支持30多种语言界面但我建议在安装时选择“English”。这是因为很多非官方汉化包或中文安装路径可能导致IDE界面乱码或者一些深层功能出现不可预知的问题。我们可以在安装完成后在软件内部再切换为简体中文界面。安装路径默认路径是C:\Program Files (x86)\Dev-Cpp。我的建议是不要安装在包含中文或空格的路径下。例如D:\Dev-Cpp就是一个完美的选择。C/C的编译工具链对路径中的非ASCII字符如中文非常敏感这可能是未来许多编译失败和调试错误的根源。组件选择在安装类型Setup Type步骤选择“Full”完全安装即可。这会安装所有核心组件包括编译器、调试器、帮助文件和一些模板。安装完成后首次启动Dev-C它会进行一些初始配置比如设置语法高亮的颜色方案。这时我们就可以去设置中文界面了点击菜单栏的Tools - Environment Options在弹出的窗口中找到Interface标签页在Language下拉框中选择 “Chinese (China)” 或 “简体中文”点击OK并重启Dev-C界面就切换过来了。注意如果你在安装后启动发现整个界面都是乱码方块或问号这通常是因为系统区域设置或字体问题。一个有效的解决方法是回到Environment Options的Interface标签将语言先改回English关闭软件。然后去系统控制面板的“区域”设置中确保“非Unicode程序所使用的当前语言”是“中文(简体中国)”再重新打开Dev-C并切换为中文。这个问题在老版本Windows上比较常见。2.2 界面与核心功能初探启动后的主界面非常简洁可以分为几个主要区域菜单栏与工具栏提供文件、编辑、搜索、编译、运行、调试等所有操作入口。建议花几分钟熟悉一下快捷键比如F9编译、F10运行、F11编译运行、F5开始调试。项目管理器左侧窗口用于管理你的项目文件。你可以在这里创建新项目、向项目中添加源文件。代码编辑区中间最大的区域是你编写代码的地方。它支持语法高亮、括号匹配、简单的代码自动完成输入部分结构后按CtrlSpace触发。编译器日志/调试窗口底部窗口这是你最重要的“信息中心”。编译时错误和警告信息会在这里显示调试时变量值、调用堆栈也会在这里展示。一个容易被忽略但极其重要的功能是类浏览器Class Browser。你可以通过View - Class Browser打开它。当你编写一个包含多个类或函数的稍大程序时类浏览器会以树状结构清晰展示所有的类、成员变量和成员函数点击即可快速跳转到对应代码位置这对于理解代码结构和导航非常方便。3. 实操过程与核心环节实现3.1 第一个程序从“Hello World”到理解编译流程我们从一个经典的“Hello World”开始但不止步于点击运行。打开Dev-C点击File - New - Source File或者直接按CtrlN。在打开的空白文件中输入以下代码#include iostream using namespace std; int main() { cout Hello, Dev-C World! endl; return 0; }输入完成后点击File - Save As将文件保存到一个你准备好的英文路径文件夹下例如D:\MyCPPProjects文件名为hello.cpp。务必注意保存文件后再进行编译因为编译器需要知道源文件的位置。现在点击工具栏上的编译按钮快捷键 F9。底部的编译器日志窗口会开始滚动信息。如果代码正确最后你会看到类似“Compilation results... 0 errors, 0 warnings”的提示。这个过程发生了什么Dev-C调用了内置的MinGW GCC编译器g.exe执行了类似g hello.cpp -o hello.exe的命令将你的C源代码文本文件翻译成了计算机可执行的hello.exe文件二进制文件。编译成功后点击运行按钮快捷键 F10。你会弹出一个黑色的控制台窗口显示着“Hello, Dev-C World!”。至此你的第一个程序成功了。但我建议你再多做一步点击编译运行按钮快捷键 F11。这个操作是“编译”和“运行”的合体如果代码有错误它会停在编译阶段并显示错误如果编译成功它会自动运行程序。在初学阶段F11是你最常用的快捷键没有之一。3.2 创建与管理项目告别零散文件当你开始编写包含多个源文件如.cpp和头文件如.h的程序时使用“项目Project”来管理就变得非常必要。项目文件.dev会记录所有属于该程序的文件以及编译设置。创建新项目点击File - New - Project...。在弹出的对话框中你会看到多种项目模板。对于初学者最常用的是Console Application控制台应用程序就是我们刚才写的黑窗口程序。Windows ApplicationWindows图形界面程序基于Win32 API这涉及更复杂的编程。Static Library和Dynamic Link Library静态库和动态链接库项目。 选择“Console Application”确保“C Project”被选中给你的项目起一个名字比如MyFirstProject。点击OK后选择一个英文路径保存项目文件。项目结构创建后Dev-C会自动生成一个main.cpp文件里面包含了一个基本的C程序框架。左侧的项目管理器中你会看到你的项目名下面列出了项目包含的文件。你可以右键点击项目名选择New File来添加新的源文件或头文件也可以选择Add to Project将已有的文件加入进来。项目编译当你拥有多个.cpp文件时例如main.cpp,utils.cpp直接点击F11编译运行即可。Dev-C的项目管理会自动处理这些文件之间的编译和链接关系生成一个统一的.exe文件。这比手动分别编译每个文件再链接要方便和可靠得多。3.3 调试入门让程序“慢下来”查看内部状态调试是程序员最重要的技能之一。Dev-C集成了GDB调试器允许你设置断点、单步执行、查看变量值。设置断点在代码编辑区左侧的灰色边缘行号旁边单击会出现一个红色的圆点这就是断点。程序运行到这一行时会暂停。例如在cout那一行设置断点。开始调试点击Debug - Start Debugging (F5)或者工具栏上的虫子图标。程序开始运行并在断点处停下。此时当前行会用一个黄色箭头标记。单步执行与观察Step Into (F7)如果当前行是函数调用会进入该函数内部。Next Step (F8)执行当前行并跳到下一行。不进入函数内部。Continue (F4)从当前断点继续运行直到下一个断点或程序结束。查看变量在底部的调试窗口你可以切换到Watches标签页手动添加你想观察的变量名如i,sum它们的当前值会实时显示。你也可以将鼠标悬停在代码中的变量上会弹出一个小提示框显示其当前值。实操心得很多新手觉得调试麻烦但它是理解程序运行流程、定位逻辑错误尤其是循环和条件判断错误的终极武器。从一个简单的、有已知错误的程序开始练习调试比如一个求阶乘但结果不对的程序通过单步跟踪和观察变量你能直观地看到错误是如何一步步产生的。4. 常见问题与排查技巧实录即使环境配置正确在学习和使用过程中也难免会遇到各种问题。下面我整理了一份最常见问题的排查清单很多都是我曾经踩过的坑。4.1 编译与链接错误这是新手阶段最常遇到的“拦路虎”。编译器日志窗口的信息是关键。错误类型典型提示信息可能原因与解决方案语法错误error: expected ‘;’ before ‘}’ token代码不符合C/C语法规则如缺少分号、括号不匹配、关键字拼写错误。仔细检查错误信息指向的行及其上一行。未定义引用undefined reference to ‘function_name’链接错误。通常是因为你声明或调用了某个函数但没有给出它的定义函数体。检查1. 函数名拼写是否正确2. 对应的源文件.cpp是否已添加到项目中3. 如果是库函数是否包含了正确的头文件如#include cmath并链接了相应的库在项目选项里设置。无法打开头文件fatal error: iostream: No such file or directory编译器找不到标准库头文件。这通常意味着MinGW编译器路径没有正确设置。去Tools - Compiler Options - Directories标签页下检查Binaries,Libraries,C Includes,C Includes这几个目录是否指向了你Dev-C安装目录下的MinGW文件夹。cout/cin未声明error: ‘cout’ was not declared in this scope对于C程序最常见的原因是忘记了#include iostream和using namespace std;或者使用std::cout。对于C程序则可能是试图用C的方式输入输出。中文乱码输出控制台输出中文显示为乱码这是Windows控制台编码与源代码编码不匹配导致的。解决方案一推荐在代码开头添加#include locale.h并在main函数第一行加入setlocale(LC_ALL, “”);。解决方案二将源代码文件另存为UTF-8编码在保存对话框中选择但这可能需要额外配置编译器选项。4.2 运行与逻辑问题程序能编译通过但运行结果不对或异常退出。程序一闪而过这是最经典的问题。对于控制台程序运行结束后窗口会自动关闭。解决方法1. 在return 0;前加上system(“pause”);需要#include cstdlib2. 在main函数末尾return之前设置一个断点然后以调试模式F5运行3. 在命令行中手动运行生成的.exe文件。无限循环/程序卡死通常是由于循环条件设置错误如while(i 0)但i从未减少。使用调试器在循环开始处设置断点观察循环变量的变化是定位此类问题的标准方法。运行时崩溃如“已停止工作”常见于访问了非法内存地址例如数组下标越界、使用了未初始化的指针、操作了已经释放的内存。这类错误编译器无法提前发现需要仔细审查代码逻辑并使用调试器观察崩溃瞬间的变量状态和调用堆栈。4.3 环境与配置杂症界面字体或编码乱码如前所述优先检查系统区域设置和IDE界面语言。也可以尝试在Tools - Editor Options - Font中更换一个支持中文的等宽字体如“宋体”、“微软雅黑 Mono”。旧项目在新版本打不开Dev-C不同大版本如4.x到5.x的项目文件格式可能有变。可以尝试用文本编辑器打开.dev项目文件查看其结构或者干脆新建一个项目再把旧的源文件添加进去。想使用C11/14新特性默认的MinGW GCC 3.4.2编译器较老。如果你想使用更新的C标准如auto、范围for循环需要更新编译器。可以去MinGW-w64官网下载更新的工具链然后在Tools - Compiler Options中将“编译器”路径指向新的g.exe并在“编译时加入以下命令”框中添加-stdc11或-stdc14参数。5. 进阶使用与效率提升技巧当你熟悉了基础操作后下面这些技巧能极大提升你的开发效率。5.1 活用代码模板与代码补全Dev-C的代码补全功能CtrlSpace虽然不如现代IDE强大但配合代码模板可以事半功倍。你可以创建自己的代码片段。例如每次写新的C文件都要打#include iostream等一堆内容很麻烦。你可以将这些常用代码块保存起来。更高效的方法是使用“文件模板”。当你点击File - New - Source File时它默认是空白的。你可以修改这个默认模板。找到Dev-C的安装目录进入Templates文件夹你会看到CppSource.cpp等文件。用记事本打开CppSource.cpp将你的常用框架如包含语句、using namespace、main函数骨架写进去并保存。以后新建源文件时就会自动载入这个模板。5.2 项目参数配置自定义编译行为对于稍复杂的项目你可能需要调整编译参数。进入Project - Project Options或右键点击项目管理器中的项目名。“Parameters”标签Compiler: 可以添加额外的编译选项例如-Wall显示所有警告、-O2优化级别2、-stdc11指定C标准。Linker: 可以添加需要链接的库例如-lm链接数学库math-lws2_32链接Windows Socket库。“Files”标签可以清晰地管理项目中的所有文件移除不需要的文件。“Makefile”标签对于高级用户可以生成或使用自定义的Makefile实现更复杂的构建流程。5.3 探索DevPaks扩展功能库根据官方信息DevPaks是Dev-C和MinGW的附加库和工具包。它们就像是“扩展商店”提供了图形界面如wxWidgets、FLTK、游戏开发SDL、数据库连接、压缩库等众多第三方库的预编译版本。每个DevPak都有一个安装程序可以自动将库文件、头文件配置到正确的目录省去了手动配置库的麻烦。你可以从Dev-C官网或相关社区找到DevPaks。安装后在创建新项目时有时会多出相应的项目模板如wxWidgets项目。使用它们可以让你在Dev-C中开发出超越控制台的图形化应用。不过对于纯粹的语言学习阶段暂时不需要接触它们。6. 从学习到实践小游戏编程示例解析网络热词中提到了“devc小游戏编程100例”这反映了大家想用Dev-C做有趣东西的愿望。确实用C在控制台里就能做出很多经典小游戏比如猜数字、贪吃蛇、俄罗斯方块简化版。这里我以“猜数字”游戏为例拆解其核心实现并说明如何在Dev-C中组织这样的程序。一个典型的猜数字游戏逻辑是程序随机生成一个数字玩家反复输入猜测程序提示“大了”或“小了”直到猜中。在Dev-C中实现你需要掌握几个关键点随机数生成C中可以使用cstdlib的srand()和rand()但为了更好的随机性通常结合ctime的time()函数设置种子srand(time(0)); int secret rand() % 100 1; // 生成1-100的随机数。循环与输入判断使用while或do-while循环持续接收玩家输入并用if-else进行判断。控制台清屏与延时为了让游戏界面更友好你可能需要清空控制台system(“cls”);或在输出间加入短暂延时Sleep(500);需要#include windows.h。在Dev-C中编写这样的游戏最佳实践是将游戏逻辑封装成函数。例如你可以把生成随机数的代码放在generateSecretNumber()函数里把判断猜测结果的逻辑放在checkGuess(int guess, int secret)函数里主函数main()则主要负责控制游戏流程和用户交互。这样写出的代码结构清晰易于调试和扩展。当你熟练后可以尝试将不同的游戏模块如图形绘制、输入处理放到不同的.cpp和.h文件中用项目来管理这就是迈向更复杂编程的第一步。最后关于中文显示乱码的问题在游戏输出中同样会遇到。务必使用前面提到的setlocale(LC_ALL, “”);方法这能确保你输出的中文字符如“恭喜你猜对了”在控制台中正常显示。调试这类游戏时善用F11编译运行和F5调试在循环中设置断点观察随机数secret和玩家输入guess的变化是理解程序运行逻辑最快的方式。

相关新闻

HarmonyOS7 轻提示位置控制:ToastPositionPatterns

HarmonyOS7 轻提示位置控制:ToastPositionPatterns

文章目录前言效果说明完整代码关键代码讲解1. bottom 控制的是相对底部的偏移2. 三种位置适合的场景并不一样3. 位置控制不要过度个性化实战建议总结前言 默认情况下,Toast 会出现在靠近底部的位置。这对大多数场景已经够用,但当页面结构复杂、底部有导航…

2026/10/12 16:29:22 阅读更多 →
AI代码补全API额度耗尽预警与无缝降级方案

AI代码补全API额度耗尽预警与无缝降级方案

在实际开发工作中,我们经常会遇到使用各类AI辅助编程工具的情况,例如基于大型语言模型的代码补全服务。这类服务通常以API形式提供,并设有调用额度限制,比如每日或每周的请求次数、Token消耗上限。当你在周五晚上或周末愉快地编码…

2026/10/14 12:19:54 阅读更多 →
17个在线编码网站全评测:从云端IDE到代码沙盒,开发者必备工具指南

17个在线编码网站全评测:从云端IDE到代码沙盒,开发者必备工具指南

1. 项目缘起:为什么我们需要在线编码环境? 作为一名在技术一线摸爬滚打了十多年的开发者,我经历过无数次“环境配置地狱”。新电脑到手,第一件事不是写代码,而是花上半天甚至一天的时间,去安装各种语言的运…

2026/10/15 7:01:13 阅读更多 →

最新新闻

基于planetary.js与Three.js的动态地球可视化实战

基于planetary.js与Three.js的动态地球可视化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:34:40 阅读更多 →
Vue3+TypeScript全栈项目实战:工程化、类型与状态管理指南

Vue3+TypeScript全栈项目实战:工程化、类型与状态管理指南

时下很多前端同学刚接触全栈项目时,第一个念头是“我用 Vue3 写页面,后端找一个框架,接口串起来不就行了”。结果真正动手,两天就发现事情没这么简单:项目结构怎么组织、类型要不要专门建一层、接口返回不一致怎么处理…

2026/10/16 1:34:40 阅读更多 →
QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘

QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘

QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory 是一款免费开源的 Python 小工具。你用手机扫一次码…

2026/10/16 1:34:40 阅读更多 →
分布式定时任务系列10:XXL-job源码分析之路由策略

分布式定时任务系列10:XXL-job源码分析之路由策略

传送门 分布式定时任务系列1:XXL-job安装 分布式定时任务系列2:XXL-job使用 分布式定时任务系列3:任务执行引擎设计 分布式定时任务系列4:任务执行引擎设计续 分布式定时任务系列5:XXL-job中blockingQueue的应用 …

2026/10/16 1:34:40 阅读更多 →
Snowy 3.x 前端文件在线预览组件 XnFilePreview 使用指南:图片、PDF 与 Office 文档预览实战

Snowy 3.x 前端文件在线预览组件 XnFilePreview 使用指南:图片、PDF 与 Office 文档预览实战

后端前端认证鉴权应用安全 【免费下载链接】Snowy 💖国内首个国密前后分离快速开发平台💖《免费商用》,基于开源技术栈精心打造,融合Vue3AntDesignVue4Vite5SpringBoot3MpHuToolSa-Token。平台内置国密加解密功能,保障…

2026/10/16 1:34:40 阅读更多 →
free-account-tool兑换失败处理清单:3次失败、日上限与CDK释放机制你该知道的事

free-account-tool兑换失败处理清单:3次失败、日上限与CDK释放机制你该知道的事

【免费下载链接】free-account-tool UPI redeem only extension 项目地址: https://gitcode.com/gh_mirrors/cd/free-account-tool 点击查看 免费下载 如果你用过 free-account-tool 这款 UPI 兑换专用浏览器扩展,一定遇到过"兑换失败"的场景…

2026/10/16 1:33:40 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →