C 项目中有多个 #ifdef 语句。所有这些 #ifdef 都在名为 .cproject 的文件中定义。 “Eclipse”IDE 使用此 .cproject 文件并突出显示 #ifdef 下未使用的代码。
这在 VSCODE 中不会发生。 我注意到,虽然某些 #ifdef 是 true 并且其下的代码正在项目中使用,但 VSCODE 将它们显示为未使用(稍微显示它们)。
我想知道是否有办法确保 VSCODE 显示/突出显示 C-Project 中使用的正确 #ifdef 参数。
.cproject 文件是一个 .xml 文件,项目中使用的所有 #ifdef 都在其中定义。 我可以在 VSCODE 中以某种方式使用该文件还是有其他方法可以做到这一点?
*** 这是假设您正在使用 Microsoft 的 VSCode C/C++ 扩展
您可以在
#ifdef
文件(项目目录中)中定义由 .vscode/c_cpp_properties.json
指令检查的符号,也可以通过 > C/C++: Edit Configurations
命令访问。
文件的结构是这样的:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"FOO"
],
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
},
{
"name": "WSL",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"BAR"
],
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
您要定义的符号位于
"defines"
字符串数组下(对于上述两种配置,FOO
和 BAR
)..
请记住,这些定义仅影响 IntelliSense 行为,它不会为编译器/预处理器定义这些符号!如果您想为编译器/预处理器定义这些,您将需要在其他地方进行。
以下是完整文档供您参考:
https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference
以及具体摘录:
- IntelliSense 引擎在解析文件时使用的预处理器定义列表。或者,使用defines
设置一个值,例如=
。VERSION=1