Visual c++ 在VC+中是否有解决复杂语法的方法+;?

Visual c++ 在VC+中是否有解决复杂语法的方法+;?,visual-c++,mingw,c99,Visual C++,Mingw,C99,我有一个用MinGW编译的库,它支持C99关键字,_Complex。我想将此库与MSVC++2010编译器一起使用。我试图暂时关闭所有复杂的语法代码,以便它能够编译。我发现大多数其他函数在MSVC++中运行良好。现在我想启用具有复杂定义的部件,但真的不知道如何启用 很明显,我不能在MSVC++中重新编译它,因为库要求C99功能等等。但是,我觉得放弃它,寻找替代品是一种浪费,因为它与大多数其他函数完美配合 我认为我可以编写需要复杂语法的API包装,并使用MingWGCC进行编译,然后将其导入到我的

我有一个用MinGW编译的库,它支持C99关键字,_Complex。我想将此库与MSVC++2010编译器一起使用。我试图暂时关闭所有复杂的语法代码,以便它能够编译。我发现大多数其他函数在MSVC++中运行良好。现在我想启用具有复杂定义的部件,但真的不知道如何启用

很明显,我不能在MSVC++中重新编译它,因为库要求C99功能等等。但是,我觉得放弃它,寻找替代品是一种浪费,因为它与大多数其他函数完美配合

我认为我可以编写需要复杂语法的API包装,并使用MingWGCC进行编译,然后将其导入到我的MSVC项目中。但我仍然想知道是否有更好的解决方法,比如人们在VC++中编译C99复数语法时处理问题的“标准”方式是什么

Xing.

来自C标准(C11§6.2.5¨13;C99具有大致相同的语言):

每个复杂类型都具有与数组相同的表示和对齐要求 正好包含对应实类型的两个元素的类型;第一个要素是 等于复数的实部,第二个元素等于复数的虚部 号码

我前面没有C++标准,但是在<代码> <代码>中定义的复杂类型模板有相同的要求;这是为了兼容性

< >您可以重新编写C函数,将类型<代码>双复数< /COD>作为C++函数,返回并返回类型<代码> STD::只要C++上的名字已被关闭(通过<代码>外部)C“< /代码>”,双方将是兼容的。 类似这样的事情可能会有所帮助:

#ifdef __cplusplus
#include <complex>
#define std_complex(T) std::complex<T>
#else
#define std_complex(T) T _Complex
#endif
\ifdef\uuucplusplus
#包括
#定义std_complex(T)std::complex
#否则
#定义std_复合体(T)T_复合体
#恩迪夫
谢谢。(我没有定期查看我的帖子)。我会试试你的解决方案,听起来是个不错的解决办法。