欢迎提供任何示例来说明源兼容性被破坏但二进制兼容性得到维护。
最佳答案
旧版本:
struct inner {
int bar;
}
struct foo {
struct inner i;
};
void quux(struct foo *p);
新版本:
struct inner2 {
int bar;
};
struct foo {
struct inner2 i;
};
void quux(struct foo *p);
损坏的代码:
struct foo x;
struct inner *i = &x.i;
i->bar = 42;
quux(&x);
由于唯一的区别是结构的名称,并且内部结构的类型名称在编译期间被删除,因此不存在二进制不兼容性。
关于c++ - 源不兼容是否总是意味着二进制不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1220304/