私は目的CがCの厳密なスーパーセットであることを知っており、同じことを書いています。 しかし、私はObjective-Cはコンパイル前にCコードに変換されていますか?
@interface Myintf {}
@end
を書くことは、それがC構造体に変換しますか、またはそれはObjective Cのコンパイラによって作成されたデータ構造Myintfためのメモリレイアウトはruntime.hで定義されたCの構造体と同じであるということです?
約同じ質問objc_msgsend
アップルのドキュメントはObjective-Cで
を言うと、メッセージは実行時までメソッド実装にバインドされていません。 コンパイラはメッセージ式をメッセージング関数objc_msgSendの呼び出しに変換します。この関数は、受信者と、メッセージに記載されているメソッドの名前(メソッドセレクタ)を2つの主要なパラメータとして取ります。