zl程序教程

您现在的位置是:首页 >  后端

当前栏目

VSCODE(十)C++语言特有设置

2023-09-27 14:27:31 时间

C/C++插件为C/C++开发者提供了丰富的设置项,包括三个方面的设置:

  • env:用户自定义的变量,可以通过类似$<var>$或者$env:<var>$形式进行变量替换;
  • configurations:定义了包括但不限于编译器、头文件路径、C++标准在内的多种设置;
  • version:定义了c_cpp_propertie.json的版本,一般不修改;

一、特有配置

我们重点关注configuration,它既可以通过settings.json,也可以通过特有的c_cpp_properties.json设置。 从C/C++角度而言,前者是全局变量,后者是局部变量。

1.1 通过c_cpp_properties.json设置的值

configurations属性是c_cpp_properties.json最核心的功能,具体的:

compilerPath:编译器完整路径,如/usr/bin/gcc,提供路径可以帮助提供更加精准的IntelliSense功能。插件将会按照一定的顺序搜寻编译器。

intelliSenseMode:默认感知模式。如果没有指定,将根据平台提供默认值,Windows:msvs-x64 Linux:gcc-x64 macOS:clang-x64

includePath:头文件包含路径

cStandard/cppStandard:指定C/C++语言标准版本

1.2 通过setting.json设置默认值

settings.json可以是工作区相关的(局部),也可以是用户区(全局)的。

在setting设置的C/C++属性是c_cpp_properties.json没有设置属性时默认填充值,设置属性可以是:

C_Cpp.default.includePath                          : string[]
C_Cpp.default.defines                              : string[]
C_Cpp.default.compileCommands                      : string
C_Cpp.default.macFrameworkPath                     : string[]
C_Cpp.default.forcedInclude                        : string[]
C_Cpp.default.intelliSenseMode                     : string
C_Cpp.default.compilerPath                         : string
C_Cpp.default.cStandard                            : c89 | c99 | c11 | c17
C_Cpp.default.cppStandard                          : c++98 | c++03 | c++11 | c++14 | c++17 | c++20
C_Cpp.default.browse.path                          : string[]
C_Cpp.default.browse.databaseFilename              : string
C_Cpp.default.browse.limitSymbolsToIncludedHeaders : boolean

你可以设置所有关于C/C++的包含路径、预定义红、编译命令和标准的等在内的所有默认值,如果c_cpp_properties.json没有这些值,将会使用上述定义进行设置。下面这个默认值是设置在当前工作空间下的默认值:
在这里插入图片描述
下面是通过UI界面设置默认值:
在这里插入图片描述两者的作用都是在c_cpp_properties.json没有这些值的情况下的默认值。不过前者是对于当前工作空间有效,后者是对于所有工作空间都有效的设置(创建了的没创建的)。

二、特有代码编辑功能

2.1 IntelliSense 智能感知

提供代码补全功能,显示悬停信息、参数信息、快速信息。使用快捷键Ctrl+Space可以主动触发智能提示

2.2 代码格式化

C/C++插件内置了ClangFormat代码格式化构建,提供了代码格式化功能。

  • 格式化文档 格式化整个文件(Shift+Alt+F)
  • 格式化选定文本 (Ctrl+K->Ctrl+F)

除了主动格式化,还可进行设置完成自动格式化,在setting.json中修改下面键值对:

  • editor.formatOntype:输入一行后,自动格式化当前行(分号;触发)
  • editor.formatOnSave:保存后格式化文件

其实这应该是属于编译器的功能:
2

2.3 代码导航

  • Go to Definition F12
  • Peek Definition Alt+F12
  • Go to Declaration
  • Peek Declaration
  • Go to Reference Shift+F12

2.4 代码片段

C/C++插件提供了一系列常用的代码片段。代码片段就是编译器帮你书写的一些常见的代码模板,如输入for:
在这里插入图片描述按下TAB接受光标所在代码片段,上下选择不同的代码片段,这里选择第一个,代码就自动生成了:
在这里插入图片描述

2.5 搜索符号

之前搜索都是使用ctrl+F进行搜索,这是进行纯文本搜索。如果要进行符号搜索,可以使用:

  • Ctrl+Shift+O 当前文件符号进行搜索
  • Ctrl+T 搜索当前工作空间所有符号