c_cpp_properties.json等三个文件解释

发布于:2025-03-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

不建议太小白的人看啊

 在 Visual Studio Code 中使用 C 语言进行编程时,通常会看到一些特定的配置文件。这些文件是用来帮助你配置开发环境、调试程序等
就是这三个文件
首先是c_cpp_properties.json:
这是 Visual Studio Code 配置 C/C++ 开发环境的文件。它包含了关于代码的编译器设置、包含路径、定义和其他与编译相关的信息。例如,includePath 指定了头文件的路径,defines 可以用于定义编译时的宏。通过修改这个文件,VS Code 能够正确地解析和提示代码中的内容,特别是在你编写 C 或 C++ 代码时
第二个是launch.json:
这个文件用于配置 VS Code 的调试设置。它包含了调试时所需的信息,比如程序的启动方式、调试器类型(例如 GDB 或 LLDB)、以及传递给程序的命令行参数等。通过这个文件,你可以设置断点、指定调试目标,以及控制调试过程
第三个是settings.json:
这个文件存储了 VS Code 编辑器的个人化设置,比如编辑器外观、代码格式化规则、插件配置等。在此文件中,你可以设置字体、行间距、主题、代码提示等各种编辑器的行为,也可以配置与 C 语言相关的选项,如自动完成、语法检查等

上面就是简单的功能概述了,下面来详细聊聊吧~

c_cpp_properties.json文件结构及详细解释

来一个典型的 c_cpp_properties.json 文件示例吧~
 

{
    "version": 4,
    "configurations": [
        {
            "name": "Win32", // 配置名称
            "includePath": [
                "${workspaceFolder}/**", // 当前工作区中的所有目录
                "C:/Program Files (x86)/Microsoft Visual Studio 2019/Community/VC/Tools/MSVC/14.2x.xxxxx/include", // Visual Studio的头文件路径
                "C:/MinGW/include" // MinGW的头文件路径
            ],
            "defines": [
                "_DEBUG", // 调试宏定义
                "UNICODE"  // 编译时的宏定义
            ],
            "compilerPath": "C:/MinGW/bin/gcc.exe", // 编译器路径
            "cStandard": "c11", // C语言标准,指定为C11
            "cppStandard": "c++17", // C++语言标准,指定为C++17
            "intelliSenseMode": "gcc-x64", // 智能提示模式,指定为GCC
            "browse": {
                "limitSymbolsToIncludedHeaders": true, // 仅限于已包含的头文件中的符号
                "path": [
                    "${workspaceFolder}", // 工作区路径
                    "C:/MinGW/include" // MinGW头文件路径
                ]
            }
        }
    ]
}

一点一点的进行名字段解释吧:
1.version:定义c_cpp_properties.json 的版本。通常会是 4,表示当前的格式
2.configurations:是一个数组,包含多个编译配置,可以为不同的操作系统或编译器指定不同的版本,可以看到啊,下面就是数组里面开始包含各种各样的配置了

launch.json 文件

这里蛮详细的了,就不多解释了

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Program",  // 配置名称
            "type": "cppdbg",  // 调试器类型,表示 C++ 调试
            "request": "launch",  // 调试请求类型,launch 表示启动新程序进行调试
            "program": "${workspaceFolder}/a.out",  // 要调试的程序的路径,${workspaceFolder} 是当前工作区的根目录
            "args": [],  // 命令行参数,可以为空数组
            "stopAtEntry": false,  // 是否在程序的入口处停住(即 main 函数处)
            "cwd": "${workspaceFolder}",  // 设置调试时的当前工作目录
            "environment": [],  // 设置环境变量,通常用于在调试时传递环境变量
            "externalConsole": false,  // 是否使用外部控制台(默认为 false,表示使用 VS Code 内置的终端)
            "MIMode": "gdb",  // 调试器模式,表示使用 gdb 调试器
            "setupCommands": [  // 启动调试器时执行的命令
                {
                    "description": "Enable pretty-printing for gdb",  // 解释性描述
                    "text": "-enable-pretty-printing",  // 执行的 gdb 命令
                    "ignoreFailures": true  // 忽略该命令失败的情况
                }
            ],
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",  // gdb 调试器的路径
            "preLaunchTask": "build",  // 在启动调试之前执行的任务,例如编译程序
            "postDebugTask": "",  // 调试结束后执行的任务
            "logging": {
                "moduleLoad": false,  // 是否开启调试模块加载日志
                "trace": true,  // 是否开启调试器追踪日志
                "engineLogging": false  // 是否记录调试引擎日志
            }
        }
    ]
}

settings.json文件

给几个常用的设置吧:(如果选哟别的可以自己搜搜,这个看看得了)
 

{
    "editor.fontSize": 14,  // 设置编辑器的字体大小
    "editor.tabSize": 4,    // 设置 Tab 键的大小,通常为 4 空格
    "editor.wordWrap": "on", // 自动换行功能
    "files.autoSave": "afterDelay", // 自动保存文件的设置
    "files.autoSaveDelay": 1000, // 自动保存延迟,单位毫秒
    "C_Cpp.intelliSenseEngine": "Default",  // 配置 C/C++ 语言的 IntelliSense 引擎
    "C_Cpp.intelliSenseEngineFallback": "Enabled", // 启用 IntelliSense 回退机制
    "terminal.integrated.fontSize": 16, // 设置集成终端的字体大小
    "workbench.colorTheme": "Dark+ (default dark)", // 设置编辑器的主题
    "files.eol": "\n", // 设置文件的换行符,`\n` 表示 Unix 风格的换行
    "editor.formatOnSave": true, // 设置保存时自动格式化代码
    "python.pythonPath": "C:/Python39/python.exe", // 设置 Python 的解释器路径
    "search.exclude": { // 设置在搜索时排除某些文件夹
        "**/node_modules": true,
        "**/.git": true
    },
    "files.exclude": { // 设置在文件资源管理器中排除某些文件
        "**/.git": true,
        "**/node_modules": true
    },
    "editor.renderWhitespace": "all" // 在编辑器中显示空格和制表符
}