Как @encode директива компилятора реализована в Objective C?

Кто-либо может объяснить, как @encode работает для извлечения элементов типа данных, существующих в данном объекте, структуре или типе данных в определение типа, которое будет использоваться в качестве дескриптора класса для инстанцирования?

Или возможно указатель на некоторые ресурсы для приобретения знаний о реализации новых директив препроцессору?

6
задан Brian Tompsett - 汤莱恩 15 February 2016 в 21:41
поделиться

2 ответа

Формулировка исходного вопроса могла быть неясной, и я думаю, что мое упоминание о возможной реализации, включающей препроцессор, заставило разговор перейти на тонкости работы компиляторов, а не на предполагаемый вопрос.

Ссылайтесь на этот вопрос, который, я считаю, гораздо более ясен в отношении того, что я пытаюсь изучить: Как мне реализовать что-то похожее на директиву компилятора Objective-C @encode () в ANSI C?

1
ответ дан 17 December 2019 в 02:28
поделиться

Директива @encode анализирует предоставленный тип и генерирует константную строку на основе этого типа. Кодировка всех примитивных типов языка C (включая знаковые и беззнаковые версии) и типов Objective-C id и SEL имеет односимвольные кодировки, которые можно найти в . Более сложные типы, такие как structы и массивы, имеют более длинные кодировки.

Более подробную информацию можно найти в Objective-C Runtime Programming Guide [PDF].

5
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: