ソースの互換性が壊れているが、バイナリ互換性が維持されていることを示す例は歓迎です。ソースの非互換性は、常にバイナリの非互換性を意味しますか?
3
A
答えて
5
旧バージョン - (.NETが迷惑になりますが、C/C++しません正確な環境により異なります。)
struct foo x;
struct inner *i = &x.i;
i->bar = 42;
quux(&x);
唯一の違いは、構造体の名前であり、そして内側の構造体の型の名前はコンパイル時に消去され、何のbがありませんので、 inary incompatibility。
0
さまざまなマシン上の静的リンクされたライブラリのバージョンが異なると、マシンAでコンパイルされたバイナリがマシンBで正常に動作することがありますが、マシンBのソースからコンパイルできません。しかし、ソースの非互換性は、一般的にバイナリの非互換性を意味します。
0
関数のパラメータの型が実際のサイズや基底型が変更されていないとします(たとえば、ある列挙型から別の型へ、またはlongからintへ)。型チェックのためにソースコードが壊れてしまいますが、バイナリ互換性には影響しません。
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);
ブロークン・コード:
関連する問題
- 1. Jquery非互換性
- 2. クロスブラウザの非互換性? (jQuery)
- 3. XMPPクライアントの非互換性
- 4. タイプの非互換性
- 5. アプリケーションの非互換性
- 6. Spring Framework 3.1.1非互換性
- 7. Androidマルチスクリーン非互換性
- 8. MySQLのPHPの非互換性
- 9. ブラウザの非互換性の問題
- 10. Springのmysqlコネクタバージョンの非互換性
- 11. のMysql 5.7との非互換性
- 12. j2me polishバイナリ互換性
- 13. スカラーライブラリjwiとの非互換性
- 14. LuceneとSolr間のバージョン非互換性
- 15. becomeFirstResponderとestimatedRowHeightの非互換性
- 16. ファブリックCrashlitycsとTwitterの非互換性
- 17. CSSとのモバイル非互換性
- 18. Visual Studio 2015リモートデバッガバージョンの非互換性
- 19. Selenium WebDriver + Firefox 7.0.1の非互換性
- 20. NDB非同期アクセスの互換性
- 21. 角材カレンダーの非互換性?
- 22. 非常に簡単な下位互換性のデモ
- 23. フレームワーク7キーパッド+スワイプ非互換性
- 24. 64ビットJVMのバグや非互換性はありますか?
- 25. sbt.IncompatiblePluginsException:プラグインのバイナリの非互換性が検出されました - scala
- 26. XAML clr-namespace - 非互換性を使用していますか?
- 27. 2015 Visual Studioでのバイナリ互換性
- 28. クロスコンパイラC言語でのバイナリ互換性
- 29. MySQL-Pythonインストールエラー:可能性のあるアーキテクチャの非互換性?
- 30. Androidスタジオのソース/ターゲット互換性リスト
intにlongを指定すると、64ビットアーキテクチャなどでバイナリ互換性が損なわれます。 – penguin359