プログラムは高級言語で書かれ、その高級言語はオペコードのセットである機械語に変換されます。Windows と互換性のあるプログラムと MAC との互換性があるプログラムがある理由をお聞きしたいと思います。これらのプログラムは、コンパイルすると単にオペコードになるからです。
1 に答える
プログラムは、ReadFile や ShowMessage など、OS に既に組み込まれている機能に依存しており、一部の OS はアーキテクチャが異なるため、機能も異なります。実際の計算と内容は同じです
例として、Mac OS に ReadFile という関数があるとします。Windows には GetFile という関数があります。Linuxには「OpenFile」という機能があります。プログラムをコンパイルするとき、それらの関数はコードに含まれません。「オペコード」は「アドレス#xxxxxxで関数を呼び出す」と言うだけなので、Windowsでそれを行った場合、OSは#xxxxxxxでGetFile関数を準備するため、プログラムが実行されます。しかし、プログラムを Mac にコピーすると、OS の設定が異なるため、#xxxxx で待機している関数が存在しないため、プログラムは失敗します。
実際には、OS はコードを実行する前にコードを見て、互換性があるかどうかを確認するため、そこに到達する前に失敗します。
「readFile」のような関数だけではありません。ほぼすべてのプログラムは、変数用にいくらかのメモリを取得する必要があり、OS ごとに異なる方法で行われます (つまり、メモリを取得するために別のアドレス #xxxx に別の機能があります)。 .