我们正在将Linux驱动程序移植到Windows。在Linux中,全局结构按以下方式初始化。假设结构有4个元素,其中只有3个被初始化。
struct globalInitialize init = {
.a = 10,
.b = 20,
.d = 30,
};
这对Linux很好,但直接在WINDOWS中使用时我们会遇到编译错误,应该修改如下
struct globalInitialize init = {
10,
20,
NULL,
30,
};
有没有办法在Windows中抑制这些编译错误而不对代码进行任何更改。让我知道更多细节。谢谢。
答案 0 :(得分:1)
我不知道您的开发团队是否必须使用Microsoft的Visual C ++编译器,但有gcc
个端口可用于Windows。此类端口的示例是MinGW,或者如果您需要整个POSIX应用程序部署平台,可以查看Cygwin。
如果你必须使用Visual C ++,你应该更新到/ buy the right version支持这些'新''C11'功能(感谢Nigel Harper)。
支持ISO C11语言功能,包括_Bool,复合文字, 指定的初始化程序,以及使用代码混合声明。