在Windows上支持指定的struct初始化器?

时间:2014-01-26 17:47:10

标签: c porting

我们正在将Linux驱动程序移植到Windows。在Linux中,全局结构按以下方式初始化。假设结构有4个元素,其中只有3个被初始化。

struct globalInitialize init = {
     .a = 10,
     .b = 20,
     .d = 30,
};

这对Linux很好,但直接在WINDOWS中使用时我们会遇到编译错误,应该修改如下

struct globalInitialize init = {
     10,
     20,
     NULL,
     30,
};

有没有办法在Windows中抑制这些编译错误而不对代码进行任何更改。让我知道更多细节。谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道您的开发团队是否必须使用Microsoft的Visual C ++编译器,但有gcc个端口可用于Windows。此类端口的示例是MinGW,或者如果您需要整个POSIX应用程序部署平台,可以查看Cygwin

如果你必须使用Visual C ++,你应该更新到/ buy the right version支持这些'新''C11'功能(感谢Nigel Harper)。

  

支持ISO C11语言功能,包括_Bool,复合文字,   指定的初始化程序,以及使用代码混合声明。

相关问题