因此,我正在使用这个C / C++库,并且正在使用GNU编译器,该编译器支持C和C++的最新标准。

我想使我的库与仅支持C89 / C90的VC++编译器兼容,而不是允许在函数体内其他语句之后声明变量的较新的C标准。

有没有我可以使用的工具,它将在函数体的开头进行所有变量声明?

我的图书馆很大,拥有执行此任务的工具将使此过程变得容易。

最佳答案

对不起,很抱歉,但是Visual C++不是C编译器。它可能是一些旧的,过时的(准确地说是过时的,已经过时22年)语言的编译器,而不是C语言。您最好的做法是建议正在寻求此类支持的人员并要求他们切换编译器,不要使用损坏的。

如果此解决方案确实超出了您的选择范围(不是),那么您可以寻找类似的主题:
How to compile c99-to-c89 convertor with clang?
https://github.com/libav/c99-to-c89/

如果您认为我说的话毫无意义,请再想一想:这是22年的过时C编译器。想想全世界人民为支持它付出的努力和金钱。

编辑:顺便说一句,那是C:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

http://www.open-std.org/jtc1/sc22/wg14/www/standards

10-07 22:56