C代码兼容性

C代码兼容性,c,compatibility,ansi,C,Compatibility,Ansi,如何确保我的代码与设置为最严格级别的每个gcc编译器兼容?是否有测试工具,或者我是否需要手动测试?谢谢每个gcc编译器都很简单,只要使用一个旧的,它肯定会用新的编译 如果你想用任何一个编译器来编译它,那就有点难了。正如建议的那样,您可以使用-ansi开关禁用gcc扩展。没有办法完全确定(特别是因为存在在编译时几乎无法检测到的未定义行为的情况),但是使用-ansi-pedantic-Wall-Wextra可能是一个很好的开始。谢谢。我一开始尝试了just-Wall,修复的警告很少,但是使用-ans

如何确保我的代码与设置为最严格级别的每个gcc编译器兼容?是否有测试工具,或者我是否需要手动测试?谢谢

每个gcc编译器都很简单,只要使用一个旧的,它肯定会用新的编译


如果你想用任何一个编译器来编译它,那就有点难了。正如建议的那样,您可以使用-ansi开关禁用gcc扩展。

没有办法完全确定(特别是因为存在在编译时几乎无法检测到的未定义行为的情况),但是使用
-ansi-pedantic-Wall-Wextra
可能是一个很好的开始。谢谢。我一开始尝试了just-Wall,修复的警告很少,但是使用-ansi,大约有15个非常奇怪的错误/警告。有几次它说有未使用的变量(当然是使用的)、一些解析错误和一些其他警告。我应该担心吗?我在我的代码中看不到任何解析错误或未使用的变量,所以我真的不明白为什么会有这么多错误
-ansi
意味着C89(颤抖),例如,你不能混合声明和代码,不能使用
/
注释,你有“隐式int”和隐式函数声明<代码>-std=c99-Wall-Wextra-pedantic errors是一个很好的组合,或者
-std=c99
使用较新的ISO/ANSI标准(
-ANSI
相当于
-std=c89