Skip to main content

Command Palette

Search for a command to run...

Latest articles

선행처리기와 매크로

선행처리는 컴파일 이전의 처리를 의미 선행처리는 선행처리기에 의해서, 컴파일은 컴파일러에 의해서, 링크는 링커에 의해서 진행 소스파일 → 선행처리기 → 선행처리 거친 소스파일 → 컴파일러 → 오브젝트 파일 → 링커 → 실행파일 컴파일 과정을 거치게 되면 바이너리 데이터로 이루어진 오브젝트 파일이 생성 선행처리기가 하는 일 삽입해 놓은 선행처리 명령문대로 소스코드의 일부를 수정 여기서 수정이란, 단순 치환의 형태 /* 간단한 선행처리 명령문 */...

Oct 10, 20246 min read

C 언어의 메모리 구조

프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련 그리고 바로 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언되는 것 메모리의 구성 프로그램 실행 시 운영체제에 의해서 마련되는 메모리의 구조는 네 개의 영역으로 구분 코드 영역 / 데이터 영역 / 힙 영역 / 스택 영역 메모리 공간을 나눠놓은 이유는 유사한 성향의 데이터를 묶어서 저장을 하면, 관리가 용이해지고 메모리의 접근속도가 향상 메모리 영역...

Oct 9, 20246 min read

파일과 스트림(Stream), 그리고 기본적인 파일의 입출력

저기 저 파일에 저장되어 있는 데이터를 읽고 싶어요. 프로그램 상에서 파일에 저장되어 있는 데이터를 참조하길 원한다고(읽기 원한다고) 가정했을 때, 우리가 구현한 프로그램과 참조할 데이터가 저장되어 있는 파일 사이에 데이터가 이동할 수 있는 다리를 놓는 일을 먼저 해야 한다. 이러한 데이터 이동의 경로가 되는 다리를 가리켜 ‘스트림(stream)’이라 함. 스트림이라는 것은 운영체제에 의해서 형성되는 소프트웨어적인 상태를 의미하는 것 따라서, ...

Oct 8, 20249 min read

구조체의 정의와 typedef 선언

typedef 선언 typedef 선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것을 목적으로 하는 선언 // 예를 들어서 다음과 같이 typedef 선언을 하게 되면, typedef int INT; // int의 또 다른 이름 INT를 부여! /* 이로 인해 다음의 뜻을 컴파일러에게 전달 "자료형의 이름 int에 INT라는 이름을 추가로 붙여줍니다" 따라서 위의 선언 이후로는 다음의 형태로 int형 변수를 선언할 수 있다. */ ...

Oct 7, 20249 min read

구조체란 무엇인가?

구조체의 정의 ‘구조체'라는 것은 하나 이상의 변수(포인터 변수와 배열 포함)를 묶어서 새로운 자료형을 정의하는 도구 // 프로그램 상에서 마우스의 좌표정보를 저장하고 관리해야 한다고 가정 int xpos;  // 마우스의 x 좌표 int ypos;  // 마우스의 y 좌표 /* 이 둘은 항상 함께하기 마련이다. 이 둘은 서로 독립된 정보를 표현하는 것이 아니라, 마우스의 위치라는 하나의 정보를 표현 이 둘은 함깨 있을 때 의미를 지님 */ ...

Oct 6, 20246 min read

스트림과 데이터의 이동

무엇이 ‘입력'이고 무엇이 ‘출력'인가? 입력: 프로그램을 중심으로 프로그램 안으로 데이터가 흘러 들어오는 것 출력: 프로그램 밖으로 데이터가 흘러 나가는 것 데이터의 이동 수단이 되는 스트림 스트림: 프로그램 상에서 모니터와 키보드를 대상으로 데이터를 입출력 하기 위해서 이들을 연결시켜주는 매개채 출력 스트림: 운영체제에서 제공하는 소프트웨어적인(소프트웨어로 구현되어 있는) 가상의 다리 스트림의 생성과 소멸 콘솔 입출력을 위한 ‘입...

Oct 3, 202410 min read

함수 포인터와 void 포인터

함수 포인터의 이해 프로그래머가 정의하는 모든 함수는 프로그램 실행 시 ‘메인 메모리'에 저장되어서 실행 함수의 이름은 메모리상에 저장된 함수의 주소 값을 의미 int SimpleFunc(int num) { . . . . }  // 반환형이 int이고 매개 변수로 int형 변수가 하나 선언된 포인터 형(type) /* 반환형 int 매개변수 선언 int num 함수 이름의 포인터 형은 반환형과 매개 변수의 선언을 통해서 결정 짓도록 약...

Oct 2, 20243 min read