1

我正在将一些(工作)代码从 Linux 移植到 Windows 8。我正在使用 DDK。

typedef struct {
    unsigned int test1;
    unsigned int test2;
} settings;

const settings vp_settings = {
    .test1 = 1,
    .test2 = 1
};

使此无效的 Windows DDK 编译器和 GCC 有何不同?我得到的错误,假设typedef struct {是第 1 行并且编号正常继续:

(7):错误:C2059:语法错误:'.'

我怎样才能以不会出现语法错误的方式编写它?我想保留相同的成员名称,所以我不需要更改代码库的其余部分。期间是多余的,可以删除吗?

4

2 回答 2

2

问:(香草)有什么问题:

const settings vp_settings = {
    1, /* test1 */
    1  /* test2 */
};

PS:

如何将 C-struct 指定初始化程序重写为 C89(resp MSVC C 编译器)

这看起来像 C99 的东西......而且 AFAIK MSVS 不完全支持 C99......

于 2012-06-28T22:54:33.043 回答
1

看起来您的编译器不支持C99 指定的初始化程序

也许您的编译器需要命令行开关来启用 C99 功能?

于 2012-06-28T22:54:46.863 回答