@encodeがどのように機能して、特定のオブジェクト、構造体、またはデータ型に存在するデータ型要素を型定義に抽出し、インスタンス化のクラス記述子として使用するかを説明できますか?
または、新しいプリプロセッサディレクティブの実装について学習するためのリソースへのポインタですか?
@encodeがどのように機能して、特定のオブジェクト、構造体、またはデータ型に存在するデータ型要素を型定義に抽出し、インスタンス化のクラス記述子として使用するかを説明できますか?
または、新しいプリプロセッサディレクティブの実装について学習するためのリソースへのポインタですか?
ディレクティブは指定された型を解析し、その@encode
型に基づいて定数文字列を生成します。すべてのCプリミティブ型(符号付きおよび符号なしバージョンを含む)とObjective-Cid
およびSEL
型のエンコーディングはすべて単一文字のエンコーディングであり、これらはにあります<objc/runtime.h>
。struct
sや配列などのより複雑なタイプは、より大きなエンコーディングを持ちます。
詳細については、Objective-Cランタイムプログラミングガイド[PDF]を参照してください。
元の質問の言い回しが不明確だった可能性があり、プリプロセッサを含む実装の可能性について言及したことで、意図した質問ではなく、コンパイラの動作の微妙な点に会話が向けられたと思います。
この質問を参照してください。これは、私が学ぼうとしていることに関してはるかに明確であると思います 。ANSICでObjective-C @encode()コンパイラ指令に似たものをどのように実装しますか?