我有一个符合C99标准的VS2015代码,用于构建用于项目其他部分的静态和动态库。
我希望为其他VS版本构建库,但需要将代码转换为C89标准。
我找到了这个工具,https://github.com/libav/c99-to-c89 然后继续下载用于转换的二进制文件,而不是首先从源代码构建它。
所以我得到了这三个必须使用的文件:" c99wrap.exe" " c99conv.exe" " makedef"
所有Readme说使用它是: " 使用
c99conv转换预处理的C源,提供的c99wrap使用C预处理器,转换其输出并将其提供给C编译器。
c99wrap $ CC $ CFLAGS来源
"
任何人都可以帮助我并告诉我如何使用这些.exe文件将C99 C代码转换为相应的C-89代码?
我只需要转换代码。哪个可以在C89格式之后的任何VS版本上使用。
答案 0 :(得分:3)
许多C99功能一开始就无法移植到C89。所以“魔术工具”只能做到这么多,你必须手动做很多。最常用功能的示例:
不便携:
restrict
指针。 C89没有等价物。便携式:
stdint.h
,inttypes.h
,stdbool.h
。可能支持编译器扩展。或者你可以自己输入def。