姬長信(Redy)

链接C 17,C 14和C 11对象是否安全


假设我有三个编译对象,都是由相同的编译器/版本生成的:

> A是用C 11标准编写的
> B是用C 14标准编制的
> C是用C 17标准编译的

为简单起见,我们假设所有头文件都是用C 11编写的,只使用其语义在所有三个标准版本之间没有变化的构造,因此任何相互依赖性都通过头包含正确表达,编译器没有反对.

这些对象的组合是什么,链接到单个二进制文件是不安全的?为什么?

编辑:欢迎涵盖主要编译器(例如gcc,clang,vs)的答案