목록전체 글 (400)
happy coding
헤더 파일(header file) C언어에서 함수는 사용되기 전에 먼저 해당 함수의 원형이 선언되어야 한다. 이 원칙은 표준 함수에도 그대로 적용되며, 표준 함수 또한 사용되기 전에 해당 함수의 원형이 선언되어야 한다. 표준함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 파일을 표준 헤더 파일이라고 한다. 또한, 사용자는 자신만의 사용자 헤더 파일을 자유롭게 만들 수 있다. 헤더 파일의 확장자는 보통.h를 사용하며, #include 선행처리 지시자를 사용해 다른 파일에 포함시킬 수 있다. 표준 헤더 파일 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 표준 헤더 파일은 그 크기가 상당히 크지만 크기가 큰 헤더 파일을 포함한다고 프로그램의 크기가 반드시 커지는 것은 아니다..
TCP school을 보고 정리한 내용입니다. 미리 정의된 매크로 C언어에서는 컴파일러가 참고해야 할 정보를 알려주기 위해 몇가지 매크로를 미리 정의해 제공한다. 이 매크로는 #define 선행처리 지시자로 정의하지 않아도 사용할 수 있지만 사용자가 재정의할 수는 없다. __DATE__ 선행처리가 수행된 날짜를 "Mmm dd yyyy"형식으로 나타낸 문자열 __TIME__ 선행처리가 수행된 시간을 "hh:mm:ss"형식으로 나타낸 문자열 __FILE__ 현재 소스 파일의 이름을 나타내는 문자열 __LINE__ 현재 소스 파일에서 처리중인 라인 번호를 나타내는 문자열 __STDC__ 컴파일러가 C언어 표준을 따르면 1로 설정함. __STDC_HOSTED__ 호스트 환경이 아니면 0, 호스트 환경이면 1로 ..
TCP school 을 보고 정리한 내용입니다. 매크로 함수 C언어에서, #define 선행처리 지시문에 인수로 함수의 정의로 전달함으로서, 함수처럼 동작하는 매크로를 만들 수 잇는데, 이러한 매크로를 함수 같은 매크로(function-like-macro) 또는 매크로 함수라고 한다. 함수와 매크로 함수 매크로 함수는 일반 함수와는 달리 단순 치환만을 해주므로, 일반 함수와 완전히 똑같은 방식으로 동작하지는 않는다. 예를 들어, 일반 함수는 인수를 프로그램이 실행 중일 때 전달받지만, 매크로 함수는 인수를 컴파일 이전에 미리 치환한다. 다른 결과값이 반환되는 오류를 미리 방지하기 위해서 각 인수를 모두 괄호로 묶어줘야 한다. 1. 매크로 함수의 전체를 괄호(())로 감싸야 합니다. 2. 매크로 함수의 인..
선행처리기(preprocess) 선행처리란 실행 파일을 생성하는 과정에서 소스 파일 내에 존재하는 선행처리 지시문을 처리하는 작업을 의미한다. 이러한 작업은 컴파일하기 전 선행처리기에 의해 먼저 처리된다. 선행처리기는 코드를 생성하는 것이 아니라, 컴파일러가 컴파일하기 좋도록 소스를 재구성하는 역할을 한다. 선행처리문 특징 1. 선행처리문은 선행처리 문자(#)로 시작한다. 2. 선행처리문은 코드 내에서 하나의 라인을 모두 차지하며, 선행처리문 뒤에 C언어 코드를 추가하여 같이 사용할 수 없다. 3. 선행처리문은 다른 C언어의 명령문과는 달리 맨 뒤에 세미콜론(;)을 붙이지 않다. 4. 선행처리문은 소스 파일 어디에나 위치할 수 있지만, 선행처리문이 위치한 곳에서부터 파일의 끝까지만 영향을 미친다. 선행처..
TCPschool 을 보고 정리한 내용입니다. 파일 입출력 함수 C언어에서 인수를 하나만 전달받는 대부분의 입출력 함수는 스트림이 stdin이나 stdout으로 고정되어 있는 함수지만, 입출력 함수 중에서 이름이 f로 시작되는 함수는 입출력 스트림을 사용자가 직접 지정할 수 있는 함수이다. 인수로 FILE 구조체 변수의 포인터를 전달함으로써 ㅎ표준 입출력 장치뿐만 아니라 파일로도 입출력을 진행할 수 있다. fgetc() 함수 fgetc() 함수는 지정된 스트림으로부터 하나의 문자를 읽어 들이는 함수이며, 읽기에 성공하면 읽은 문자를 반환하고, 파일의 끝에 도달하면 EOF를 반환한다. #include int fgetc(FILE *stream); fgetc() 함수의 반환값은 int형 변수로 저장해야 한다...
TCP school 을 보고 정리한 내용입니다. 파일(file) 파일이란 의미있는 정보를 담고 있으며, 이름을 가지고 있는 저장 장치 상의 논리적인 단위를 의미한다. C언어에서는 이러한 파일을 바이트별로 따로 읽을 수 있는 연속적인 바이트의 집합으로 취급한다. 파일의 종류 1. 바이너리 파일(binary file) 2. 텍스트 파일(text file) 1. 바이너리 파일은 데이터의 저장과 처리를 목적으로 0과 1의 이진 형식으로 인코딩된 파일을 가리킨다. 프로그램이 이 파일의 데이터를 읽거나 쓸 때는 데이터의 어떠한 변환도 일어나지 않는다. 2. 텍스트 파일은 사람이 알아볼 수 있는 문자열로 이루어진 파일을 가리킨다. 프로그램이 이 파일의 데이터를 읽거나 쓸 때는 포맷 형식에 따라 데이터의 변환이 일어난..
버블 정렬이나 삽입 정렬이 수행되는 과정은 '작게' 이웃하는 원소의 자리바꾸기이다. 버블 정렬의 수행 과정은 작은(가벼운) 숫자가 배열의 앞부분으로 매우 느리게 이동하며, 삽입 정렬에서 마지막 원소가 가장 작은 숫자라면 그 숫자가 배열의 맨 앞으로 이동해야 하므로 모든 다른 숫자들이 1칸씩 오른쪽으로 이동해야 한다. 쉘 정렬은 이를 이용한 것이다. 쉘 정렬 쉘 정렬은 삽입 정렬을 이용하여 배열 뒷부분의 작은 숫자를 앞부분으로 '빠르게' 이동시키고, 동시에 앞부분의 큰 숫자는 뒷부분으로 '빠르게' 이동시킨다. 쉘 정렬은 gap 을 이용해 정렬한다. 점점 간격을 작게(마지막으로 1) 해서 타그룹에 속해 서로 비교되지 않은 숫자를 찾는데 여기서 모든 원소를 1개의 그룹으로 여기는 것을 삽입 정렬이라고 볼 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dqLKEc/btrR6dm91AF/ORcS4UaqQko4hHUe6K9Bn1/img.png)
수업을 듣고 정리한 내용입니다. 삽입 정렬(Insertion Sort) 삽입 정렬이란, 배열을 정렬된 부분(앞 부분)과 정렬이 안된 부분(뒷 부분)으로 나누고, 정렬 안된 부분의 가장 왼쪽 원소를 정렬된 부분의 적절한 위치에 삽입하여 정렬되도록 하는 과정을 반복하여 진행하는 정렬이다. 위와 같은 배열이 있다고 가정하였을 때, 삽입 정렬을 실행하면 아래와 같다. 정렬이 안된 부분의 숫자 하나가 정렬된 부분에 삽입됨으로서, 정렬된 부분의 원소 수가 1개 증가하는 동시에 정렬 안된 부분의 원소 수는 1개 감소한다. 이것을 반복해 수행하면, 마지막엔 정렬아된 부분엔 아무 원소도 남지 않고, 입력이 정렬된다. 정렬은 배열의 첫 번째 우너소만이 정렬된 부분에 있는 상태에서 정렬을 시작하게 된다. //Insertio..