본문 바로가기

Basic41

[C언어] 제 21 강 : 구조체, 공용체 그리고 열거형 여러가지 데이터를 하나로 묶기 위해 구조체가 등장하였습니다. 예를 들면 X 좌표와 Y좌표, 가로값과 세로값 그리고 높이값, 이름과 주소, 전화번호, 나이등 연관있는 데이터들을 하나로 묶어서 관리하면 참 편하겠죠~? 소프트웨어 개발 과정에서는 표현하는 데이터들은 그룹으로 관리를 하게됩니다. struct MAN { char name[10]; int age; }; MAN은 구조체의 이름이고 중괄호 안에있는 문장들은 구조체 MAN의 맴버입니다. 이러한 정의가 이뤄지고 난 다음부터 MAN은 변수의 선언에 사용되는 자료형의 이름으로 인식이 됩니다. struct MAN boxbop; cf) typedef struct MAN MAN; 이라고 추가로 작성하면 struct MAN boxbop 대신 단순히 MAN boxbo.. 2012. 1. 27.
[C언어] 제 20 강 : 매크로와 전처리기 처음에 설명했던 부분 기억나시나요? 실행파일이 컴파일과 링크의 과정을 거쳐서 만들어지는 것으로 설명했습니다. 실제로는 컴파일 이전에 '전처리'라는 과정을 거치게 됩니다. 즉, 소스파일은 선행처리기에 의해 전처리 과정을 한번 거친 후에 컴파일 거치게 됩니다. 사실 선행처리기가 하는 일은 아주 간단합니다. 우리가 작성해 놓은 선행처리 명령문대로 소스코드의 일부를 수정하는 것이 전부입니다. 지시자 매크로 매크로몸체 위와 같이 선행처리 명령문은 기본적으로 세 부분으로 나뉩니다. 아래 문장을 예로들어 설명하겠습니다. #define A 10 지시자(#define)는 선행처리기에 이어서 등장하는 매크로를 마지막에 등장하는 매크로 몸체로 치환하라는 명령을 내립니다. 즉, A 를 10으로 치환하라는 의미입니다. ex) .. 2012. 1. 27.
[C언어] 제 19 강 : 문자열 관련 표준 함수 [문자열 함수] 1. int puts(const char* s); 성공시 0이아닌 값을, 실패 시 EOF 반환 ex) puts("hello boxbop!"); 2. int putchar(int c); 성공 시 출력된 문자 정보를, 실패 시 EOF 반환 ex) putchar('A'); cf)EOF는 End Of File의 약자로 상수 값은 -1입니다. 파일의 끝을 표시하기 위해 정의된 상수입니다. 3. char* gets(char* s); 성공 시 매개변수로 전달된 값을, 실패 시 NULL 포인터 반환 ex) char str[10]; gets(str); 이함수를 호출하면서 메모리의 주소 값을 인자로 전달하면, 키보드로부터 입력되는 문자열이, 전달된 주소의 메모리에 저장됩니다. 4. int getchar(v.. 2012. 1. 26.
[C언어] 제 18 강 : 메모리 관련 함수와 한정자 포인터와 관련이 있는 내용들을 설명하겠습니다. 여기서 한장자라고 하면 제한을 걸때 사용되는 키워드라고 할 수 있습니다. 포인터의 const 선언 const는 변수를 상수화 하는 용도로 사용이 됩니다. 이번에는 포인터에 적용해보도록 하겠습니다. int number =10; int* ptr = &number; 여기서 const가 들어갈 수 있는 자리는 2군데 있습니다. const int* const ptr = # 포인터 선언 앞에 사용될 수 있고, 포인터 변수의 이름 앞에 삽입될 수도 있습니다. 두 군데 모두 사용할 수도 있습니다. int number = 10; const int* ptr = &number; 이렇게 사용이 된다면 포인터 ptr은 가리키는 대상에 대한 값의 변경이 허용되지 않습니다. 예.. 2012. 1. 26.