2011. 4. 15. 17:28

새로운 전처리기 명령

 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에서는 이러한 한줄 주석을 사용 있습니다.

Posted by openserver