Visual Studio Code 抱怨结构属性语法

Gre*_*enn 2 c arm visual-studio-code

在下面的代码片段中(C,针对ARM嵌入式芯片)

typedef struct __attribute__((__packed__)) MyStruct_S
{
    int MyFirstField;
    int MySecondField;
} MyStruct_Type;
Run Code Online (Sandbox Code Playgroud)

VS Code 对属性后面的 MyStruct_S 标识符进行抱怨。投诉称“预期为 ';'C/C++(65)”。

然而,即使设置了 -Wall 和 -Wextra 编译器标志,此代码也可以正常编译和运行。

VS Code 做错了什么?我们可以修复 IntelliSence 以查看这是正确的语法吗?

我对此工作区的扩展如下:

  • 臂组件
  • C/C++
  • Doxygen 文档生成器
  • GNU 链接器映射文件
  • 生成文件工具
  • 世界SL

干杯!

Ser*_*kan 5

您应该更改 C/C++ 扩展配置。在 下选择一个合适的Intellisense Mode。在 Windows 上,默认设置为 windows-msvc-x64,在 Linux 上,默认设置为 linux-gcc-x64。创建一个新的 C/C++ 配置(C/C++: Edit Configurations命令),并将 Intellisense 模式设置为linux-gcc-arm。然后对于您的项目,使用"C/C++: Select a configuration..."命令更改您的配置。

在此输入图像描述