许多刚开始学习 C 语言的同学都会遇到同一个问题:老师上课用的 Dev-C++ 界面太老旧,Visual Studio 又太笨重,听说 VSCode 很流行,但下载安装之后却不知道怎么把它配成能写 C 语言的环境。
这篇文章就围绕 VSCode 安装、C/C++ 开发环境配置、插件安装、中文汉化这四件事展开,目标是在 10 分钟内搞定一套能写、能编译、能调试的 C 语言开发环境。整个流程已经在 Windows 系统上反复验证过,新手可以直接照着操作,每一步都有解释,遇到报错也有对应的排查思路。
1. 为什么用 VSCode 写 C 语言
先来理清一个基本概念:Visual Studio Code(简称 VSCode)本身只是一个文本编辑器,它并不自带 C 语言编译器。很多新手误以为装好 VSCode 就能直接运行 C 代码,其实不是这样。
写 C 语言代码需要两个核心部分:
- 编辑器:负责编写代码,VSCode 就是一种非常流行的编辑器。
- 编译器:负责把源代码翻译成计算机能运行的 exe 程序,Windows 上常用的是 MinGW-w64(GCC 编译器)。
VSCode 的优势在于它轻量、启动快、插件生态丰富,而且代码提示、调试体验都很好。你可以用它写 C、C++、Python、Java、前端等几乎所有主流语言,这也是它在开发者群体中广受欢迎的原因。
配置好的 VSCode C/C++ 开发环境,具备以下能力:
- 语法高亮和代码补全。
- 一键编译运行 C/C++ 程序。
- 支持断点调试,方便排查逻辑错误。
- 界面可以汉化为中文,新手更容易上手。
对于 C 语言初学者来说,这套环境的难度比 Visual Studio 低,但比 Dev-C++ 更专业,后续学习数据结构和算法、参加竞赛、做课程设计都够用。
2. 安装前的准备工作
在开始安装之前,先列一下需要准备的三样东西,免得安装过程中来回找:
| 所需内容 | 作用 | 获取方式 |
|---|---|---|
| VSCode 安装包 | 代码编辑器 | 官网下载 |
| C/C++ 扩展插件 | 提供语法提示、调试支持 | VSCode 内安装 |
| MinGW-w64 编译器 | 把 C 代码编译成可执行文件 | 官网或网盘下载 |
关于版本,这里做一个说明:不建议刻意追求“最新版”,VSCode 会自动更新,MinGW-w64 也建议大家使用较新的稳定构建版本,因为旧版本在部分新电脑上可能存在兼容问题。本文示例以常见的 Windows 10/11 64 位系统为例,配置思路在 Windows 7 上同样适用,但步骤会有细节差异。
3. 下载并安装 VSCode
3.1 下载 VSCode
打开浏览器,进入 VSCode 官方网站:code.visualstudio.com。
在页面正中间可以看到一个明显的蓝色下载按钮,它会根据你的操作系统自动显示对应的版本。如果你使用的是 Windows,选择 “Windows” 版本下载即可。
注意区分两个概念:
- VSCode(Visual Studio Code):这是一个轻量编辑器,本文的主角。
- Visual Studio:这是一个重量级 IDE(集成开发环境),虽然也支持 C/C++,但对新手来说占用空间大、安装慢、操作也更复杂。
VSCode 安装包通常只有几十 MB,下载速度很快。如果你所在网络环境下载速度慢,可以使用备用镜像站,但优先推荐官网下载,确保版本最新且安全。
3.2 安装 VSCode
下载完成后,双击安装包,进入安装向导。有几个关键步骤需要注意:
第一,勾选“我同意此协议”,点击“下一步”。
第二,选择安装路径。默认路径是C:\Users\你的用户名\AppData\Local\Programs\Microsoft VS Code,可以保持默认,也可以自定义到D:\VSCode等目录。这里需要注意:安装路径尽量不要包含中文和空格,否则某些插件和编译器可能出现莫名其妙的路径解析错误。
第三,进入“选择附加任务”页面时,建议勾选以下选项:
- “创建桌面快捷方式”,方便启动。
- “将‘通过 Code 打开’操作添加到 Windows 资源管理器文件上下文菜单”。
- “将‘通过 Code 打开’操作添加到 Windows 资源管理器目录上下文菜单”。
- “将 Code 注册为受支持的文件类型的编辑器”。
前三个选项在使用中非常方便,可以在文件夹上右键直接打开 VSCode,强烈建议全部勾选。
安装完成后,打开 VSCode,初始界面是英文的。不要急着操作,先把它汉化成中文。
4. VSCode 中文汉化设置
VSCode 的汉化非常简单,不需要手动下载语言包,直接在扩展商店里搜索安装即可。
在 VSCode 左侧边栏可以看到一排图标,从上到下依次是:资源管理器、搜索、源代码管理、运行和调试、扩展。点击最下方的“扩展”图标(快捷键Ctrl+Shift+X),打开扩展商店。
在扩展商店的搜索框中输入Chinese,在搜索结果中找到名为 “Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code” 的扩展,这是微软官方发布的中文语言包。点击 “Install” 按钮安装。
安装完成后,右下角会弹出提示,询问是否切换语言并重启 VSCode。点击 “Change Language and Restart” 按钮,VSCode 会自动重启,重启后整个界面就变成中文了。
如果你没有看到这个提示,也可以手动切换:按下Ctrl+Shift+P打开命令面板,输入Configure Display Language,选择zh-cn,然后重启 VSCode 即可。
到这里,VSCode 的汉化就完成了。注意,中文语言包只是界面语言切换,和代码运行没有直接关系,汉化不会影响编译效果。
5. 安装 C/C++ 扩展插件
VSCode 本身不识别 C 语言代码,需要安装 Microsoft 官方提供的 C/C++ 扩展插件,它提供了语法高亮、代码补全、调试支持等核心功能。
继续在扩展商店中搜索C/C++,找到由 Microsoft 发布的 “C/C++” 扩展,它的发布者是Microsoft,图标是一个蓝色的 C++ 标志,这是最核心的插件。点击 Install 安装。
除了 C/C++ 扩展,还有几个对新手非常实用的插件,可以一并安装:
| 插件名称 | 作用 |
|---|---|
| C/C++ Extension Pack | C/C++ 扩展合集,包含调试、代码补全等辅助工具 |
| Code Runner | 一键运行多种语言的代码,非常便捷 |
| Chinese (Simplified) | 中文语言包,前面已经装过了 |
| Better C++ Syntax | 增强的 C++ 语法高亮 |
| Include Autocomplete | 头文件路径自动补全 |
其中有两点需要说明:
Code Runner 插件会在编辑区右上角生成一个三角形的“运行”按钮,点击即可一键编译运行当前代码文件,对新手来说非常直观。但它的默认行为是直接运行,不经过断点调试,学习调试功能时还是要用 VSCode 自带的“运行和调试”。
Include Autocomplete 插件会自动识别你的 MinGW 安装路径,补全#include <stdio.h>这类头文件时会有智能提示,减少了手动打错的概率。
这些插件安装完成后,VSCode 就能正确识别 C/C++ 代码了。但此时还差最后一步,也是最关键的一步:安装 C 语言编译器。
6. 安装并配置 C 语言编译器 MinGW-w64
6.1 为什么需要 MinGW-w64
VSCode 只是一个编辑器,不具备把 C 代码变成可执行程序的能力。在 Windows 上,常见的 C 语言编译器是 GCC,而 MinGW-w64 是 GCC 在 Windows 平台上的一个发行版本。
这里涉及的三个概念,新手容易混淆:
- GCC:一套开源编译器集合,支持 C、C++、Objective-C 等语言,原本主要运行在 Linux 平台上。
- MinGW:Minimalist GNU for Windows,把 GCC 移植到 Windows 平台的最小开发环境。
- MinGW-w64:MinGW 的后续维护分支,同时支持 32 位和 64 位程序,是目前 Windows 上写 C/C++ 的推荐选择。
简单理解:MinGW-w64 就是你在 Windows 上写 C 语言时真正干活的“翻译官”。
6.2 下载与安装 MinGW-w64
MinGW-w64 的官方下载地址是开源社区维护的,页面上内容比较多,对于新手来说,更推荐使用以下两种方式来获取:
方式一:通过 WinLibs 网站下载(较推荐)
WinLibs 网站(winlibs.com)提供了预编译好的 MinGW-w64 构建版本,下载解压即可使用,不需要手动配置复杂的编译选项。进入网站后,选择UCRT runtime版本的.zip压缩包(例如win64-x64的压缩包),下载完成后解压到某个目录,比如D:\mingw64。
方式二:通过 MSYS2 安装
MSYS2 是一个软件发行版,安装后通过它的命令行工具可以安装 MinGW-w64。这个过程适合想深入了解工具链的开发者,对于新手来说稍显复杂,这里不做展开。
下载完成后需要进行一项重要检查:确认解压后的目录里有bin子目录,并且bin目录里有gcc.exe文件。这个文件是 C 编译器的主程序,后续配置环境变量时要用到它的路径。
例如解压后得到这样的路径结构:
D:\mingw64 └── bin ├── gcc.exe ├── g++.exe ├── gdb.exe └── 其他文件6.3 配置环境变量
环境变量的作用是让操作系统在任意位置都能找到 gcc.exe,这样你可以在终端里直接输入gcc命令编译代码,VSCode 也能从系统环境中找到编译器。
打开 Windows 的“设置”,搜索“编辑系统环境变量”,点击打开“环境变量”窗口。
在“系统变量”区域找到Path变量,点击“编辑”,然后点击“新建”,把D:\mingw64\bin这一路径添加进去。注意:一定要在bin目录那一级添加,不能只填到D:\mingw64,否则系统找不到 gcc.exe。
添加完成后,依次点击“确定”保存。
6.4 验证编译器是否安装成功
重新打开一个命令提示符窗口(快捷键Win+R,输入cmd,回车),输入以下命令:
gcc --version如果环境变量配置成功,终端会输出类似下面的信息:
gcc (tdm64-1) 10.3.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.不同版本的数字可能不同,只要能看到“gcc”和版本号,就说明编译器安装成功了。
再试一条命令,验证调试器:
gdb --version看到版本信息说明 gdb 调试器也已就绪。到这一步,VSCode 和编译器的准备工作全部完成,接下来就可以正式写代码了。
7. 创建第一个 C 语言程序并运行
7.1 创建项目文件夹
在电脑上新建一个文件夹,专门用来存放 C 语言学习代码,例如D:\C_Code,以后每个练习都放在这个目录下。
然后在 VSCode 中点击菜单栏“文件” → “打开文件夹”,选择刚才创建的文件夹。如果是第一次打开,VSCode 可能会弹出询问“是否信任此文件夹中的文件的作者”,选择“是,信任作者即可”。
在左侧资源管理器中,新建一个文件,命名为hello.c。注意后缀名必须是.c,这代表是一个 C 语言源文件。
7.2 编写 C 语言代码
在hello.c中输入下面这段代码:
#include <stdio.h> int main() { printf("Hello, CSDN!\n"); return 0; }这段代码是做 C 语言入门时经典的“Hello World”程序:
#include <stdio.h>是预处理命令,引入标准输入输出头文件,这样你才能使用printf函数在屏幕上输出文字。int main()是程序入口函数,程序运行时会从这里开始执行。printf("Hello, CSDN!\n")的作用是在终端中打印一行文字,\n表示换行。return 0表示程序正常结束。
输入完成后,可以观察到代码中的关键字、函数名和字符串文本都呈现出不同的颜色,如果出现了这种语法高亮,说明 C/C++ 插件工作正常。
7.3 用 Code Runner 一键运行
如果你安装了 Code Runner 插件,运行这段代码非常直观:在代码编辑区域点击鼠标右键,选择“Run Code”,或者点击编辑器右上角的三角形运行按钮。
终端面板会在下方打开,显示程序的运行结果:
Hello, CSDN!Code Runner 默认的编译运行逻辑是:如果当前文件是.c文件,就用 gcc 编译并运行。它适合快速验证小段代码,是新手学习过程中的“快捷键”。
7.4 手动编译运行
除了使用 Code Runner,也建议新手掌握手动编译的方法,这能帮助你理解程序的构建过程。
打开 VSCode 内置终端:菜单栏“终端” → “新建终端”,然后在终端中输入:
gcc hello.c -o hello.exe这条命令的作用是用 gcc 编译器把hello.c源文件编译成可执行文件hello.exe。编译完成后,紧接着输入:
.\hello.exe屏幕上会输出:
Hello, CSDN!至此,你已经完成了从源代码到可执行文件的完整流程:写代码 → 编译 → 运行。这个流程是所有 C 语言开发的基础。
8. 配置调试功能(进阶必备)
写 C 语言代码难免会遇到逻辑错误,这时候可视化调试功能就非常有用。VSCode 的调试功能基于两个配置文件:tasks.json和launch.json。初学者往往被这两个文件吓到,这里拆开解释。
8.1 生成 tasks.json
tasks.json用来定义“编译任务”,告诉 VSCode 在调试之前如何把 C 代码编译成 exe 文件。
先在 VSCode 里打开hello.c,然后按键盘上的F5键。此时 VSCode 检测到没有调试配置,顶部会弹出下拉列表,选择“C++ (GDB/LLDB)”,紧接着再选择“gcc.exe - 生成和调试活动文件”。
VSCode 会自动生成一个.vscode文件夹,里面包含tasks.json和launch.json两个文件。你不需要完全手动编写,只需要理解并微调其中的配置。
tasks.json的核心内容如下:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活动文件", "command": "D:/mingw64/bin/gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ] }其中几个参数的作用,简单解释一下:
command:指定编译器的完整路径,这里是 gcc.exe 的实际路径,注意斜杠方向。args:传递给编译器的参数,-g表示生成调试信息,${file}表示当前打开的文件,-o后面跟的是输出文件的完整路径。label:任务名称,可以自定义,但要保持唯一。group:把该任务设置为默认构建任务,这样按Ctrl+Shift+B可以直接编译。
8.2 生成 launch.json
launch.json用来定义“调试配置”,告诉 VSCode 如何启动并调试已编译的 exe 文件。
自动生成的launch.json核心内容如下:
{ "version": "0.2.0", "configurations": [ { "name": "C/C++: gcc.exe 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "D:/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc.exe 生成活动文件" } ] }这里最关键的是两个配置项:
miDebuggerPath:调试器 gdb.exe 的完整路径,要和你的 MinGW 实际安装位置一致。preLaunchTask:调试开始前要执行的编译任务名称,必须和 tasks.json 里的label保持一致。它保证了你在按 F5 调试时,程序会先编译最新代码,再启动调试。
8.3 设置断点并调试
配置完成后,回到hello.c,在代码左侧的行号位置点击一下,会看到一个红色圆点,这表示断点设置成功。
在int main() {这一行设置断点,然后按F5,VSCode 会先执行编译任务,然后自动打开调试面板,程序会在断点处暂停。这时你可以使用顶部的调试工具栏来逐行执行、查看变量值、观察程序运行状态。
调试工具栏中常用的按钮有:
- “继续”:运行到下一个断点。
- “单步跳过”:执行当前行代码,不进入函数内部。
- “单步进入”:如果当前行是函数调用,则进入函数内部。
- “单步跳出”:跳出当前函数。
- “停止”:结束调试。
在左侧的“运行和调试”面板中,你还可以在“监视”区域添加变量名,例如添加num,就可以实时看到它的值变化。这对于理解循环、指针等内容非常有帮助。
9. 常见问题与排查思路
在配置过程中,新手最常遇到的问题是编译器找不到、中文乱码、程序闪退等。下面整理成表格,方便对照排查。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
gcc不是内部或外部命令 | 环境变量没有配置正确 | 检查 Path 里是否添加了 MinGW 的 bin 目录,重新打开终端 |
编译时报错undefined reference to ... | 缺少必要的库或编译参数 | 检查代码中引用的函数是否在头文件中声明 |
| 运行结果中文乱码 | VSCode 默认 UTF-8,Windows 终端默认 GBK | 在代码中不写中文,或调整终端编码 |
| 按 F5 提示找不到 gdb.exe | launch.json 的 miDebuggerPath 路径错误 | 检查 gdb.exe 是否存在,修改路径 |
| 运行程序后终端一闪而过 | 程序执行完成后终端被关闭 | 使用 Code Runner,或在代码末尾加getchar()(但需注意副作用) |
| 代码补全没有提示 | C/C++ 插件未加载 | 检查插件是否启用,重启 VSCode |
| 打开某个 C 文件时格式突然错乱 | 扩展冲突 | 禁用非必要的语法插件 |
下面对几个高频问题展开说明。
问题一:gcc 不是内部或外部命令
这是新手最常见的错误。当你打开 VSCode 内置终端输入gcc --version时,如果提示“不是内部或外部命令”,说明系统的 PATH 环境变量没有生效。
排查步骤:
- 打开命令提示符(不是 VSCode 的终端),输入
where gcc。 - 如果提示找不到,说明环境变量没有配置好。
- 检查 Path 里的路径是否是 MinGW 的 bin 目录,例如
D:\mingw64\bin。 - 配置完成后,一定要重新打开终端窗口,环境变量才能重新加载。
问题二:编译成功但运行时终端闪退
使用 VSCode 默认的运行方式运行 exe 时,终端窗口会在程序执行完毕后立即关闭,新手往往看不清输出内容。
最简单的解决方案是使用 Code Runner 插件运行,它的输出面板会保留结果。如果你用终端手动运行,可以在代码末尾添加:
getchar();但要注意,这个写法在输入流中残留换行符的时候可能不会生效。更规范的做法是使用调试模式,或者直接在终端中运行编译好的 exe 文件。
问题三:中文乱码
VSCode 默认以 UTF-8 编码读取和保存文件,而 Windows 的命令行终端默认代码页通常是 GBK。于是 printf 中的中文字符串在终端显示为乱码。
这是一道经典的新手必考题。处理方式有几种:
- 写入源代码时保存为 GBK 编码(文件右下角编码栏可以切换)。
- 在代码中开头不做任何设置,直接把所有提示信息改为英文。
- 在 VSCode 设置中搜索
files.autoGuessEncoding,打开“自动猜测编码”选项。
不同写法的效果不同,建议初学者直接使用英文提示信息,避免编码问题干扰学习。
问题四:F5 调试时提示缺少 gdb.exe
这个错误说明launch.json里的miDebuggerPath配置有问题。打开.vscode/launch.json,检查该路径是否和你的 MinGW 实际安装路径一致。注意 Windows 路径在 JSON 中可以使用正斜杠D:/mingw64/bin/gdb.exe,也可以使用转义的双反斜杠D:\\mingw64\\bin\\gdb.exe,两种写法都可以。
10. 编写高质量 C 代码的工程建议
环境配置好只是第一步,写出规范、可维护的 C 代码才是长期目标。下面给新手列出几条比较实用的工程建议。
第一,保持代码风格统一。
缩进、大括号的换行方式、变量命名尽量做到全项目一致。虽然不同老师推荐的风格略有差异,但更重要的是“统一”和“清楚”。建议新手直接从 K&R 风格或 Allman 风格中选一种开始练习,比如:
// K&R 风格:左大括号与语句同行 int add(int a, int b) { return a + b; } // Allman 风格:左大括号独占一行 int add(int a, int b) { return a + b; }不要一个文件里混合使用两种风格,否则后续维护和阅读都会变得很困难。
第二,函数职责要单一。
一个函数只做一件事,函数名要能准确表达其功能。比如calc_average、print_result、read_students,这些名字一看就懂。不要写一个几百行的main函数,把所有逻辑都塞进去,一旦出错很难定位。
第三,注意变量的作用域。
新手常见的问题是全局变量用得太多。全局变量的确方便,但代码量变大之后,全局变量会让程序的行为变得难以预测。建议优先把变量定义在函数内部,函数之间通过参数和返回值来传递数据,这对后续学习指针和数据结构也很有帮助。
第四,正确处理输入输出。
C 语言的scanf、getchar、fgets等输入函数各有适用场景。新手经常踩的坑是:用scanf读取整数后,输入缓冲区中还残留着回车符,接下来用getchar读到的不是期望字符,而是那个残留下的换行符。这个问题在划分知识点的时候非常典型,遇到不符合预期的输入结果,可以优先检查缓冲区。
第五,尽早使用调试工具。
很多新手遇到程序输出不对,就喜欢在代码里到处加printf打印中间结果。这种做法不是不行,但效率较低。VSCode 的断点调试功能可以让你逐步观察变量变化,定位出错的代码行,比猜“哪里打印有问题”要精准得多。从学习的第一个复杂程序开始,建议就养成用调试器的习惯。
第六,做好版本备份。
学习过程中会不断修改代码,建议每次写完一个比较完整的功能后,手动复制一份到带日期的文件夹,例如D:\C_Code\day04_函数练习。等你学到文件操作和 Git 之后,这个问题就交给 Git 来管理了。但前期手动备份成本很低,却能有效防止误改导致代码无法恢复的情况。
11. 后续学习建议
到这里,你已经拥有了一套完整的 VSCode C/C++ 开发环境,也跑通了第一个 C 语言程序。这套环境对后续学习、上机考试、课程设计都会持续发挥作用。
接下来可以继续深入的方向有:
- C 语言基础语法:数据类型、运算符、流程控制、循环、数组、函数、指针、结构体。
- 经典练习:字符串逆序、链表操作、文件读写,这些都是笔试和面试里出现频率很高的题目。
- 调试进阶:学会观察数组内容、监视指针指向的值、分析段错误,是 C 语言学习中的一个重要分水岭。
- C++ 拓展:在 C 语言熟练之后,可以继续配置 C++ 环境,VSCode 对 C++ 的支持也是一套成熟的方案,只需在创建文件时使用
.cpp后缀,并安装 C++ 相关扩展即可。
还有一点需要提醒:环境配置只是一个门槛,不要沉浸在“装环境”里出不来。有同学反复折腾配色、插件、主题,却迟迟没有写几行真正的代码。建议把环境配好之后,马上开始练习,遇到报错先冷静分析,再按本文的排查思路定位问题,一步一步解决问题,会慢慢从“照着敲”过渡到“自己写”。
如果本文对你有帮助,可以收藏备用。配置过程中如果遇到文章里没有提到的问题,欢迎在评论区留言交流。