所以我正在研究这个 C/C++ 库,我正在使用 GNU 编译器,它支持最新的 C 和 C++ 标准。
我想让我的库与仅支持 C89/C90 的 VC++ 编译器兼容,而不是允许在函数体内的其他语句之后进行变量声明的较新的 C 标准。
有没有我可以使用的工具,可以在函数体的开头声明我的所有变量?
我的图书馆很大,有一个工具来完成这项任务将使这个过程变得容易。
所以我正在研究这个 C/C++ 库,我正在使用 GNU 编译器,它支持最新的 C 和 C++ 标准。
我想让我的库与仅支持 C89/C90 的 VC++ 编译器兼容,而不是允许在函数体内的其他语句之后进行变量声明的较新的 C 标准。
有没有我可以使用的工具,可以在函数体的开头声明我的所有变量?
我的图书馆很大,有一个工具来完成这项任务将使这个过程变得容易。
对不起,反答案,但 Visual C++ 不是 C 编译器。它可能是一些旧的、过时的(准确地说是 22 年过时的)语言的编译器,而不是 C。你应该做的最好的事情是建议那些要求你提供这种支持的人,并要求他们切换编译器而不是使用损坏的编译器。
如果这个解决方案真的超出您的选择(不是),那么您可以寻找类似的主题: How to compile c99-to-c89 converter with clang? https://github.com/libav/c99-to-c89/
如果您认为我所说的没有意义,请再想一想:这是一个 22 年过时的 C 编译器。想想世界各地的人们为支持它所付出的努力和金钱。
编辑:顺便说一句,那是 C: http ://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf