1 Command Line Tool Enum Test 2 main

















- Slides: 17




1. Command Line Tool 프로젝트 생성(Enum. Test) 2. main. m 파일 작성 #import <Foundation/Foundation. h> int main (int argc, const char * argv[]) { @autoreleasepool { enum Menu {Input = 1, Output, Exit}; int menu; NSLog (@"메뉴를 입력하세요: "); scanf ("%d", &menu); switch (menu) { case Input: NSLog(@"입력을 선택하셧습니다"); break; case Output: NSLog(@"출력을 선택하셧습니다"); break; case Exit: NSLog(@"종료를 선택하셧습니다"); break; default: NSLog (@"잘못 입력하셨습니다. "); break; } } return 0; }

2. typedef 자료형의 이름에 별명을 붙여서 사용하고자 하는 경우 사용하는 예약어 형식 typedef [변경하고자 하는 자료형] [별명으로 사용할 이름]; 예 #if __LP 64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN 32 || NS_BUILD_32_LIKE_64 typedef unsigned long NSUInteger; #else typedef unsigned int NSUInteger; #endif



예제(연산자 매크로) #import <Foundation/Foundation. h> #define AND && #define OR || #define EQUAL == int main (int argc, const char * argv[]) { @autoreleasepool { int year; NSLog(@"년도를 입력하세요"); scanf("%i", &year); if(year % 4 EQUAL 0 AND year % 100 != 0 OR year % 400 EQUAL 0) { NSLog(@"%i년은 윤년입니다", year); } else { NSLog(@"%i년은 윤년이 아닙니다", year); } } return 0; }

예제(매크로 함수) #import <Foundation/Foundation. h> #define LEAP_CHECK(year) year%4==0 && year%100!=0 || year% 400 == 0 #define degrees. To. Radian(x) (M_PI * (x) / 180. 0) int main (int argc, const char * argv[]) { @autoreleasepool { int y; NSLog(@"년도를 입력하세요: "); scanf("%i", &y); if(LEAP_CHECK(y) == YES) NSLog(@"%d년은 윤년입니다. ", y); else NSLog(@"%d년은 윤년이 아닙니다. ", y); NSLog(@"180도 = %f 라디안", degrees. To. Radian(180)); } return 0; }





5. 함수 C 타입의 함수를 선언해서 파일 내에서 사용이 가능합니다. 기존 C언어의 표준 함수를 호출해서 사용하기도 합니다. 예제 #import <Foundation/Foundation. h> void print. Message (void) { NSLog (@"C스타일의 함수"); } int main (int argc, const char * argv[]) { @autoreleasepool { print. Message(); } return 0; }

예제(클래스 내부에서 호출) #import <Foundation/Foundation. h> @interface Test: NSObject - (void) disp; @end @implementation Test void print. Message() { NSLog (@"C스타일 함수"); } - (void) disp { print. Message(); } @end int main (int argc, const char * argv[]) { @autoreleasepool { Test *Obj = [Test new]; [Obj disp]; } return 0; }


구조체의 사용 기본값 지정 struct 구조체이름 변수명 = {값나열} struct 구조체이름 변수명 = {. 멤버명=값, …. } 구조체 내의 구조체 내에 다른 구조체 변수를 포함할 수 있습니다. 자주 사용되는 구조체 struct CGPoint { CGFloat x; CGFloat y; }; struct CGSize { CGFloat width; CGFloat height; }; struct CGRect { CGPoint origin; CGSize size; }; typedef struct _NSRange {NSUInteger location; NSUInteger length; } NSRange;