1. ホーム
  2. c++

[解決済み] C/C++で関数ポインタとデータポインタはなぜ互換性がないのですか?

2022-06-17 03:45:39

疑問点

関数ポインタからデータポインタへの変換、またはその逆はほとんどのプラットフォームで動作しますが、動作は保証されていないと読んだことがあります。なぜこのようなことが起こるのでしょうか? 両方ともメイン メモリへの単なるアドレスであり、したがって互換性があるはずではないのですか?

どのように解決するのですか?

アーキテクチャは、コードとデータを同じメモリに格納する必要はありません。ハーバード・アーキテクチャでは、コードとデータは全く別のメモリに格納されます。ほとんどのアーキテクチャは、コードとデータを同じメモリに格納するフォン・ノイマン・アーキテクチャですが、C言語はなるべく特定の種類のアーキテクチャだけに限定しません。