Objective C는 C에 대한 이전 버전과 호환되는 확장 집합입니다. Objective C 기능이 두 가지 매우 간단한 방법으로 구분되기 때문에 가능합니다.
- 캐릭터의 사용
@. 이 문자는 현재 C 언어에서 사용되지 않습니다.
- 메서드 호출을위한 간단한 구문 확장,
[obj method:argument]. C에서 대괄호는 배열 첨자에 매우 특정한 방식으로 사용되므로 잘못된 C 구문입니다. 유효하지 않은 구문을 기반으로하는 확장은 호스트 언어에서 유효한 것의 의미를 변경하지 않습니다.
Objective C 확장을 사용하는 프로그램은 아무리 간단하더라도 ISO C 프로그램을 엄격하게 준수 할 수 없다는 것을 쉽게 알 수 있습니다. 또한 모든 ISO C 프로그램은 정의에 따라 유효한 Objective C 프로그램으로 선언 될 수 있습니다. Objective C는 C99 및 C11과 같은 개발을 쉽게 따를 수 있습니다.
반면에 C ++는 단순히 C에 대한 확장이 아닙니다. C의 일부 구문의 의미를 변경하는 다른 언어입니다. C ++와 C는 별도로 유지되므로 시간이 지남에 따라 관계가 변경됩니다. 예를 들어, C는 C ++에 전혀없는 새로운 기능을 획득했으며 C99 가변 길이 배열과 같이 C ++에 포함되지 않을 가능성이 높습니다. C ++는 새로운 C 기능을 쉽게 선택할 수 없습니다.
이식 가능한 C 프로그램을 작성하는 경우 동시에 Objective C 프로그램이어야합니다. 그러나 동일한 의미를 가진 C ++ 프로그램이되도록 추가주의가 필요합니다. (이 관행은 들어 본 적이 없으며 필요한 방언은 비공식적으로 "Clean C"로 알려져 있습니다.)
나누기 ++ C로 처리하는 C 프로그램의 단순 예는 다음과 같은 식별자, C ++과 같은 키워드를 사용하는 C 프로그램 class또는 virtual. Objective C는 예약 된 키워드를 도입하지 않습니다. @와 같이 캐릭터 가 도입 한 새로운 키워드가 있습니다 @interface.