从Linux移植到Windows 8:Struct成员名称

时间:2012-06-28 22:51:09

标签: c struct compiler-errors wdk

我正在将一些(工作)代码从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:语法错误:'。'

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

2 个答案:

答案 0 :(得分:2)

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

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

PS:

How to rewrite C-struct designated initializers to C89 (resp MSVC C compiler)

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

答案 1 :(得分:1)

看起来您的编译器不支持C99 designated initializers

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