我刚刚阅读了C维基百科条目,据我所知,有三个不同的C版本广泛使用:C89、C99和C11。我的问题涉及到不同版本源代码的兼容性。
假设我要编写一个程序(使用最新版本的C11),并且导入一个使用C89编写的库。按照C11规范编译所有文件时,这两个版本是否会正常工作?
问题1:
较新的C版本,如C99、C11,是否为旧版C的超集?通过超集,我指的是,旧代码将根据新的C规范编译而没有错误,并且具有相同的含义。
我刚刚读到,在C89和C99中,双斜杠//具有不同的含义。除此特性外,C99和C11是否为C89的超集?
如果问题1的答案是否定的,则我有另外两个问题。
我刚刚读到,在C89和C99中,双斜杠//具有不同的含义。除此特性外,C99和C11是否为C89的超集?
如果问题1的答案是否定的,则我有另外两个问题。
- 如何将旧代码“移植”到新版本?是否有一份说明该过程的文档?
- 是更好的选择C89还是C99还是C11?