새로운 전처리기 명령
Objective-C는 C언어에서 확장된 언어이기 때문에 C언어를 수정없이 그대로 사용할 수 있습니다. 더 정확하게는 Objective-C는 언어 사양을 확장한 것이 아니라 컴파일러를 확장한 것이며, 컴파일러는 Objective-C 코드를 C 코드로 변환하여 처리하고 있습니다. 사실, 추가된 형식과 예약어도 사실상 헤더 파일에서 #define과 typedef로 재정의 되어 있는 것일 뿐입니다.
그래서 Objective-C를 제대로 실행하려면 추가사항이 정의되어 있는 헤더 파일을 포함해야 합니다. Objective-C에 새로 추가된 형식과 식별자는 objc/objc.h 헤더 파일에 정의 되어 있습니다. 그러나 이 헤더 파일에 정의되어있는 기능은 Objective-C에 필요한 최소한 것이므로, 일반적으로 컴파일러가 제공하는 종합적인 헤더 파일을 포함해서 사용하는 관습이 있습니다. GCC 컴파일러에서는 objc/ Object.h 헤더 파일을, Mac OS Cocoa 개발 환경에서는 Foundation/NSObject.h 헤더 파일을 포함해야 합니다.
Objective-C를 컴파일러에 의존적이지 않게 코드를 작성하려면 objc/objc.h를 포함해야 합니다. 왜 이런 확장 헤더 파일이 필요한지에 대해서는 잠시 후에 설명합니다.
Objective-C는 #inlucde 전처리기를 대체하는 새로운 #import 전처리기가 추가 됩니다. 이 명령어는 #include와 마찬가지로 헤더 파일을 포함하지만, 한 번 인클루드된 파일은 중복적으로 인클루드하지 않으며 기능은 #include와 같은 기능입니다. (#ifndef같은 구문이 필요없습니다)
# import <헤더 파일> # import "헤더 파일"
C언어에서 헤더 파일을 사용할때에는 주의를 해야 할 것이 있습니다. 그것은 헤더 파일을 중복적으로 포함할 경우에 대비해야 한다는 것입니다. 그러나 C프로그래머들은 관습적으로 헤더 파일들을 중복 포함하지 않도록 전처리 명령을 사용하고 있으므로,새로운 #import를 사용해도 문제가 없을 것입니다.
다른 내용들은 C언어와 동일하므로 stdio.h 헤더 파일을 포함하고 printf ()와 같은 표준 함수를 이용할 수 있습니다. 하지만 명심하실것은 Objective-C 소스 파일의 확장자는 원칙적으로 *.m 으로 정해져 있습니다.
# import <stdio.h>
# import <objc/Object.h>
int main()
{
printf ( "Hello World!\n");
printf ( "Welcome to Objective-C World!\n");
return 0;
}
이 프로그램을 보면 알 수 있듯이, 대부분 C언어와 동일합니다. Objective-C는 C언어와 완벽히 호환됩니다. 단지 C언어와 비슷한 언어가 아니라 완전한 C언어의 상위집합입니다.
참고로 C언어의 주석인 /* */ 외에, Objective-C에서는 한줄 주석인 // 가 추가되어 있습니다. 이 주석은 C++ 언어의 주석과 마찬가지며, C언어의 처리에서도 일반적으로 사용가능하게 하는 컴파일러들도 많이 존재합니다.
// 주석
Objective-C에서는 이러한 한줄 주석을 사용 할 수 있습니다.