프로그래밍 언어 81

[컴파일] 헤더파일, 분할 컴파일, 조건부 컴파일

더보기 A. 헤더 파일 1. 헤더 파일(header file) a. 헤더파일이란? C언어에서 함수는 사용되기 전 함수의 원형이 선언되어야 함 (이 원칙은 표준 함수에도 적용) 🌟 이러한 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 파일을 표준 헤더 파일 사용자는 자신만의 사용자 헤더 파일을 자유롭게 만들 수 있음 확장자 .h #include 선행처리 지시자를 사용해 다른 파일에 포함시킬 수 있음 b. 표준 헤더 파일 다양한 정보를 가지고 있는 파일이라 크기가 크지만, 큰 헤더파일이라고 프로그램 크기가 커지는건 X 헤더 파일의 내용은 실행파일에 추가되는 내용보다 컴파일러가 실행 파일을 만드는데 사용하는 정보가 대부분이기 때문 💙 표준 헤더 파일에 저장되는 정보 1) 표준 함수의 원형..

[선행처리] 선행처리기, 매크로 함수, 미리 정의된 매크로

더보기 A. 선행처리기 1. 선행처리 a. 선행처리(preprocess)란? 🌟 실행 파일을 생성하는 과정에서 소스 파일 내에 존재하는 선행처리 지시문을 처리하는 작업 컴파일 하기 전 선행처리기(preprocessor)에 의해 먼저 처리 코드 생성 ❌ 코드 소스 재구성 ⭕ b. 선행처리문의 특징 선행처리 문자(#)로 시작 코드 내 하나의 라인 모두 차지 (선행처리문 뒤에는 주석만 가능) 세미콜론 X 소스 파일 어디에나 위치할 수 있지만, 선행처리문이 위치한 곳 부터 파일의 끝까지만 영향 2. 선행처리 지시자 (preprocessing directives) a. 선행처리 지시자의 종류 선행처리 지시자 설명 #include 외부에 선언된 함수나 상수 등을 사용하기 위해, 함수나 상수가 포함된 외부 파일을 현..

[입력과 출력] 파일 입출력 : fopen() 모드 문자열

A. 모드 문자열 1. 모드 문자열 a. fopen() 함수의 모드 문자열이란? 🌟 파일의 사용 용도를 결정하고, 파일의 데이터를 어떤 방식으로 입출력할지를 결정 b. 사용 용도 r (read mode) : 읽기 전용 모드 w (write mode) : 쓰기 전용 모드 a (append mode) : 추가 모드 c. 입출력 방식 t (text mode) : 해당 파일의 데이터를 텍스트 파일로 인식하고 입출력 b (binary mode) : 해당 파일의 데이터를 바이너리 파일로 인식하고 입출력 d. 최종 모드 문자열표 모드 문자열 설명 r 파일을 오로지 읽는 것만 가능한 텍스트 모드로 개방 w 파일을 쓰는 것만이 가능한 텍스트 모드로 개방 파일이 없으면 새 파일을 만들고, 파일이 있으면 해당 파일의 모든 ..

[입력과 출력] 콘솔 입출력, 파일 입출력, 파일 입출력 함수

A. 콘솔 입출력 공부하기 전 C 언어의 기본적인 입출력 방식에 대해 알아야 함 [문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자 A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리 C언어는 파일이나 콘솔의 입출력 monamu.tistory.com 1. 버퍼(buffer) a. 버퍼란? 🌟 표준 입출력 함수를 사용할 때 사용하는 임시 메모리 공간 입력 작업 뿐 아니라 printf() 함수 등을 통해 모니터에 데이터를 출력할 때도 버퍼를 사용 출력하고자 하는 데이터는 일단 출력 버퍼에 저장되었다가 출력 스트림을 통해 모니터로 전송 b. 버퍼의 장단점 HTML 삽입 미리보기할 수 ..

[문자와 문자열] 입출력 함수 총정리 2 : 문자열

C. 문자열 1. 문자열(string) a. 문자열 상수(string constant) 큰따옴표("")를 사용해 표현되는 문자열을 문자열 상수(string constant)라고 함 이름이 없고, 내용을 변경할 수 없어서 상수라고 표현함 b. 문자열 🌟 메모리에 저장된 일련의 연속된 문자(character)들의 집합 👉 문자형 배열로 표현, 이 배열이 곧 문자열 변수가 됨 💥 문자형 배열이기 때문에 기본 타입에 포함되지 않음 = 연산자 사용 불가능 HTML 삽입 미리보기할 수 없는 소스 char str01[] = "This is a string."; // 크기를 지정하지 않은 문자열 변수 선언 char str02[7] = "string"; // 크기를 지정한 문자열 변수 선언 printf("이것은 문자열 ..

[문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자

A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리 C언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림을 통해 다룸 b. 스트림 생성 방식 콘솔 장치 : 프로그램 실행 시 자동 실행, 자동 소멸 파일 연결 스트림 : 직접 생성 c. 표준 스트림 (standard stream) 표준 스트림 설명 stdin 표준 입력 스트림 stdout 표준 출력 스트림 stderr 표준 오류 스트림 d. EOF(End Of File) 🌟 파일 끝에 도달했을 때 반환되는 값, -1 ✔ 운영체제마다 다르지만 C언어에서는 운영체제 상관없이 -1을 반환함 💙 파일뿐만 아니라 키보드를 통한 입력시에도 입..

[메모리의 관리] 메모리의 기초 총정리

A. 메모리의 기초 프로그램이 실행 되기 위해서 먼저 프로그램이 메모리에 로드 되어야 함 또한 프로그램 속 변수를 저장할 메모리도 필요함 따라서 운영체제는 프로그램 실행을 위해 아래와 같은 메모리 공간을 제공 1. 메모리의 구조 a. 코드 영역 🌟 실행할 프로그램의 코드가 저장되는 영역 (텍스트 영역) CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리 b. 데이터 영역 🌟 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역 프로그램 시작 = 할당 / 프로그램 종료 = 소멸 c. 힙 영역 🌟 프로그래머가 할당( = 동적 할당) / 해제 (자바에서는 가비지 컬렉터가 자동 해제) 하는 메모리 공간 클래스, 클로저가 이 부분에 해당, 런타임 시에 크기가 결정 낮은 주소에서 높은 주소의 방향..

[자료형(data type)] C 파생형 공용체와 열거체

더보기 D. 공용체와 열거체 1. 공용체 a. 공용체란? 🌟 union 키워드를 사용하여 선언. 구조체와 거의 동일하지만 모든 멤버 변수가 하나의 메모리 공간을 공유 🎨 도식화 모든 멤버 변수가 같은 메모리를 공유해 한 번에 하나의 멤버 변수밖에 사용할 수 없음 순서가 규칙적이지 않고, 미리 알 수 없는 다양한 타입의 데이터를 저장할 수 있도록 설계된 타입 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당받음 👉 따라서 공용체 배열을 사용하면, 같은 크기로 구성된 배열 요소에 다양한 크기의 데이터를 저장할 수 있음 HTML 삽입 미리보기할 수 없는 소스 typedef union { unsigned char a; unsigned short b; unsigned int c; } SHAREDATA; int m..

[자료형(data type)] C 구조체 배열과 구조체 포인터, 구조체 활용

더보기 B. 구조체 배열과 구조체 포인터 1. 구조체와 배열 a. 구조체 배열 선언 및 초기화 배열의 요소에는 제한이 없어서 구조체도 가능함 구조체 배열을 선언하는 방법은 일반 배열 선언방법과 같고, 접근 방법도 동일함 HTML 삽입 미리보기할 수 없는 소스 struct book text_book[3] =//2차원 배열의 초기화 방법과 똑같은 방법으로 초기화 { {"국어", "홍길동", 15000}, {"영어", "이순신", 18000}, {"수학1", "강감찬", 10000} }; puts("각 교과서의 이름은 다음과 같습니다."); printf("%s, %s, %s\n", text_book[0].title, text_book[1].title, text_book[2].title); //멤버 연산자(.)..

[자료형(data type)] C 파생형 구조체 기본

더보기 A. 구조체의 기본 1. 구조체 a. 구조체란? 🌟 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입 = 사용자 정의 자료형이라고 부름 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있음 또한 함수 리턴값으로 구조체를 사용하면 여러 개의 데이터를 한 번에 반환할 수 있음 (함수는 원래 하나의 값만 가능) 배열이 같은 타입의 변수 집합이라면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이때 구조체를 구성하는 변수를 구조체의 맴버 또는 맴버변수라고 함 b. 구조체의 정의 HTML 삽입 미리보기할 수 없는 소스 struct 구조체이름//struct 키워드 : 구조체의 시작을 알림 { 멤버변수1의타입 멤버변수1의이름; 멤버변수2의타입 멤버변수2..