객체 C에서 @encode 컴파일러 지시문은 어떻게 구현됩니까?
-
20-09-2019 - |
문제
@encode가 주어진 객체, struct 또는 datatype에 존재하는 데이터 유형 요소를 인스턴스화를위한 클래스 디스크립터로 사용할 유형 정의로 추출하기 위해 어떻게 작동하는지 설명 할 수 있습니까?
아니면 새로운 사전 처리기 지침의 구현에 대한 학습을위한 리소스에 대한 포인터일까요?
해결책 2
원래 질문에 대한 문구는 불분명했을 수 있으며, 전처리 자와 관련된 가능한 구현에 대한 언급은 대화가 의도 된 질문이 아닌 컴파일러의 미묘함을 향해 돌려주었습니다.
내가 배우려고하는 것에 대해 훨씬 더 분명하다고 생각하는이 질문을 참조하십시오.ANSI C의 Objective-C @encode () 컴파일러 지시문과 유사한 것을 어떻게 구현합니까?
다른 팁
그만큼 @encode
지시문은 제공된 유형을 구문 분석하고 해당 유형에 따라 상수 문자열을 생성합니다. 모든 C 원시 유형 (서명 및 부호없는 버전 포함)의 인코딩 및 Objective-C id
그리고 SEL
유형은 모두 단일 문자 인코딩을 갖는다. <objc/runtime.h>
. 더 복잡한 유형 struct
S와 어레이는 더 큰 인코딩을 갖습니다.
자세한 내용은 다음에 확인할 수 있습니다 Objective-C 런타임 프로그래밍 안내서 PDF].
제휴하지 않습니다 StackOverflow