본문 바로가기

분류 전체보기

(8)
0.3. 변수의 값 표시하기 NSLog를 사용하여 간단한 문장 외에도 변수의 값과 계산 결과도 표시할 수 있다. 아래는 NSLog 루틴을 사용하여 50과 25를 더한 결과를 표시한다. #import int main (int argc, const char * argv[]) { @autoreleasepool { int sum; sum = 50 + 25; NSLog (@"The sum of 50 and 25 is %i", sum); } return 0; } main 안에 오토릴리스 풀이 설정된 다음, 첫 프로그램 명령문은 변수 sum이 정수형이 되도록 선언한다. 변수는 항상 사용하기 전에 선언해야 한다. 변수 선언은 프로그램 내에서 그 변수를 어떻게 사용해야 할지는 Objective-C 컴파일러에게 지정해주는 것을 말한다. 컴파일러는 이..
0.2. 프로그램 설명하기 예제 코드는 아래와 같다. #import int main(int argc, const char * argv[]) { @autoreleasepool { NSLog (@"Programming is fun! \n"); } return 0; } ● Objective-C는 대소문자를 구별한다. ● 입력이 시작되는 위치에 대해 신경쓰지 않는다. 위에서 #import 는 시스템 파일로서, #import를 통해 이 파일에 있는 정보를 마치 프로그램의 그 위치에 그대로 입력된 것처럼 가져오거나 포함시키라는 의미이다. main은 프로그램 실행이 시작되는 위치를 나타내는 특별한 이름이다. main 앞에 등장하는 int 예약어는 main이 반환하는 값이 정수임을 나타낸다. @autoreleasepool의 경우는, 여는 중괄호..
0.1. Objective-C 컴파일 1. ObjectiveC 소스 파일은 .m을 파일 이름의 맨 마지막 글자(확장자)로 한다. 아래는 자주 사용되는 파일 확장자 목록이다. 확장자 의미 .h 헤더 파일 .m Objective-C 소스 파일 .mm Objective-C++ 소스 파일 XCode 프로젝트 창으로 처음 들어가면 아래와 같은 템플릿 파일이 생성된다. #import int main (int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Programming is fun!"); } return 0; } 위와 같은 코드의 경우 Objective-C 컴파일러인 Clang을 사용하여 프로그램을 컴파일하고 링크할 수 있다. 보통 다음과 같은 Clang 명령으로 컴파일한다. clang -fo..
0.3.2. C 언어로 메모리를 다루는 방법 (구조체) c 언어에서 구조체(Structure)는 다른 데이터 형식을 조합해서 만드는 사용자 정의 데이터 형식이다. C 언어에서 struct 키워드를 이용해서 x와 y를 담는 Point 구조체를 선언할 수 있다. struct Point { INT x; INT y; } Point와 같은 구조체 형식은 인스턴스를 선언할 때도 Struct 키워드를 명시해야 한다. struct Point MyPoint = { 30, 40, }; // x는 30, y는 40으로 초기화 printf("x : %d, y : %d\n", MyPoint.x, MyPoint.y); // "x : 30, y : 40" 출력 위와 같이 Point의 멤버 변수 x와 y에 접근할 때 접근 연산자 .을 사용한다. 이 연산자의 이름은 멤버 접근 연산자(Me..
0.3.1. C 언어로 메모리를 다루는 방법 (포인터) C언어로 자료구조와 알고리즘을 다루는 데 필수적인 포인터, 구조체, 메모리 레이아웃, 스택, 힙을 설명한다. ※ 포인터 포인터는 변수이다. 값을 저장하는 일반 변수와 달리 메모리 주소를 저장한다는 점이 다를 뿐이다. 데이터 형식* 포인터 INT 형식 메모리 주소를 저장하는 포인터는 다음과 같이 선언한다. INT* PTR 다음과 같이 포인터에 주소값을 할당할 수 있다. INT* PTR = 0xFF000000 주소 연산자 &를 이용해서 다른 변수의 주소를 할당할 수 도 있다. INT A = 123; INT* PTR = &A; C언어에서는 포인터에 증감 연산자를 사용할 수 있다. 예로 INT 형식이 32비트(4바이트)인 시스템에서 기반 데이터 형식이 INT인 포인터에 ++ 연산자를 적용하면 주소값이 32비트 ..
0.2. 알고리즘 알고리즘은 9세기 페르시아 수학자 알 콰리즈미의 이름에서 유래된 말로 어떤 문제를 풀기 위한 단계적 절차를 뜻한다. 알고리즘을 설계한다는 것은 문제 풀이 절차를 설계한다는 것이고, 알고리즘을 구현한다는 것은 프로그래밍 언어를 이용해서 문제 풀이 절차를 실제로 동작하는 코드로 작성한다는 의미이다. 입력 문제를 풀기 위한 단계적 절차 (알고리즘) 출력 세상에 다양한 문제가 존재하듯 문제를 풀 때 사용할 수 있는 알고리즘 또한 다양하다. 그 중 고전이라 불릴 수 있는 것은 자주 사용하는 정렬, 탐색, 해싱 등이 그 예이다. 알고리즘을 공부한다는 것은 어떤 문제를 분석해서 컴퓨터가 알아들을 수 있는 형태로 해법을 설계하고 구현하는 과정을 익힌다는 의미이다. 알고리즘 학습은 단순히 문제 풀이 요령을 익히는 것이 ..
0.1 자료구조 자료구조(Data Structure)는 아래와 같은 특징을 갖는다. 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터 보관 방법 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터에 관한 연산의 총체 우리가 흔히 알고 있는 INT는 32비트의 메모리 공간 안에 수를 할당하고 첫 비트를 부호 표현에 사용하는 등의 '보관 방법'을 정의하고 있고, 덧셈/뺄셈/나눗셈/곱셈/논리/시프트 등 다양한 '연산' 또한 정의하고 있다. 자료구조는 아래와 같이 단순 자료구조(Primitive Data Structure)와 복합 자료구조(Non-Primitive Data Structre)로 나뉜다. 단순 자료 구조는 이전의 INT와 같은 통상적으로 제공하는 기본 데이터 형식을 말한다. 자료구조 단순 자료구조(..
Windows에서의 ASCII 및 유니코드(UNICODE) 1. 문자셋(Charcter Sets)의 종류와 특성 1-1). ASCII - 알파벳 26개와 몇몇 확장 문자를 포함하고, 1Bytes로 표현된다. 1-2). UNICODE - 문자를 표현하는 데 있어 균일하게 2Bytes를 사용하며, 65,536개의 문자를 표현할 수 있다. https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_D000~DFFF 유니코드 D000~DFFF - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 이 문서 안에는 일부 컴퓨터·브라우저에서 표시할 수 없는 문자가 있습니다. 그러므로 유니코드 글꼴이 있는 환경에서 보시는 것이 좋습니다. 다음은 U+D000에서 U+DFF..