"인클루드"의 두 판 사이의 차이
잔글 |
|||
(사용자 2명의 중간 판 3개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | ''' | + | '''인클루드'''(include)는 프로그래밍에서 언어 자체에서 지원하는 기능을 다른 곳에서 가져다 쓰기 위해 사용하는 [[명령어]]이다. 영문 해석하면 '포함시키다'라는 의미를 가지는데, 다른 곳에 있는 [[소스코드]]의 일부를 가져와서 포함시키라는 뜻이다. '''전처리문'''이라고도 한다. [[C 언어]] 계열 프로그램에서 사용한다. [[자바]] 언어에서도 include를 사용할 수 있으나, [[자바]]나 [[파이썬]]에서는 주로 [[임포트]](import)를 사용한다. |
== 문법 == | == 문법 == | ||
include 문법(사용법)은 다음과 같다. | include 문법(사용법)은 다음과 같다. | ||
#include <헤더파일> 또는 #include "헤더파일" | #include <헤더파일> 또는 #include "헤더파일" | ||
− | 이렇게 두 가지 형식이 있는데 #include<헤더파일>은 컴파일러의 라이브러리 폴더에서 헤더파일을 찾는다. #include"헤더파일"은 현재 | + | 이렇게 두 가지 형식이 있는데 #include<헤더파일>은 컴파일러의 라이브러리 폴더에서 헤더파일을 찾는다. #include"헤더파일"은 현재 [[디렉토리]]에서 헤더파일을 찾는다.만약 없다면 컴파일러의 [[라이브러리]] 폴더에서 헤더파일을 찾는다. 그러므로 <>보다 ""가 범위가 더 크고 이 경우 사용자가 헤더파일을 만들었을 경우 사용한다.<ref>wowon〈[https://wowon.tistory.com/61 C언어 include 사용법]〉, 《티스토리》, 2017-05-29</ref> |
== stdio.h == | == stdio.h == | ||
− | stdio.h은 Standard Input/Output library (표준입출력 라이브러리)의 약어로써, C 언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 형의 입출력 함수가 포함된 헤더 파일이다. 1970년대, 벨 연구소의 마크 레스크가 쓴 "portable I/O package"로부터 내려저 왔다. C++에서는 호환성을 이유로 stdio.h 헤더 파일이 포함되어 있는 것과 마찬가지로 cstdio도 std 이름공간에서 stdio.h의 함수와 형식이 선언되어 있다.<ref name = "위키백과">〈[https://ko.wikipedia.org/wiki/Stdio.h stdio.h - 위키백과, 우리 모두의 백과사전]〉, 《위키백과》</ref> | + | stdio.h은 Standard Input/Output library (표준입출력 라이브러리)의 약어로써, C 언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 형의 입출력 함수가 포함된 헤더 파일이다. 1970년대, 벨 연구소의 마크 레스크가 쓴 "portable I/O package"로부터 내려저 왔다. [[C++]]에서는 호환성을 이유로 stdio.h 헤더 파일이 포함되어 있는 것과 마찬가지로 cstdio도 std 이름공간에서 stdio.h의 함수와 형식이 선언되어 있다.<ref name = "위키백과">〈[https://ko.wikipedia.org/wiki/Stdio.h stdio.h - 위키백과, 우리 모두의 백과사전]〉, 《위키백과》</ref> |
=== 멤버 함수 === | === 멤버 함수 === | ||
stdio.h에 선언되어 있는 함수는 일반적으로 파일 조작 함수와 콘솔 입출력 함수 둘로 구분된다. 주로 쓰이는 것들만 간단하게 구분 해보겠다. | stdio.h에 선언되어 있는 함수는 일반적으로 파일 조작 함수와 콘솔 입출력 함수 둘로 구분된다. 주로 쓰이는 것들만 간단하게 구분 해보겠다. | ||
62번째 줄: | 62번째 줄: | ||
:* time_t : 시간 타입 | :* time_t : 시간 타입 | ||
:* struct tm: 시간 구조체<ref>〈[https://modoocode.com/108 C언어 레퍼런스 - time.h 헤더파일]〉, 《모도코드》, 2010-12-25</ref> | :* struct tm: 시간 구조체<ref>〈[https://modoocode.com/108 C언어 레퍼런스 - time.h 헤더파일]〉, 《모도코드》, 2010-12-25</ref> | ||
− | |||
{{각주}} | {{각주}} | ||
72번째 줄: | 71번째 줄: | ||
== 같이 보기 == | == 같이 보기 == | ||
+ | * [[임포트]] | ||
{{프로그래밍|검토 필요}} | {{프로그래밍|검토 필요}} |
2023년 8월 17일 (목) 07:37 기준 최신판
인클루드(include)는 프로그래밍에서 언어 자체에서 지원하는 기능을 다른 곳에서 가져다 쓰기 위해 사용하는 명령어이다. 영문 해석하면 '포함시키다'라는 의미를 가지는데, 다른 곳에 있는 소스코드의 일부를 가져와서 포함시키라는 뜻이다. 전처리문이라고도 한다. C 언어 계열 프로그램에서 사용한다. 자바 언어에서도 include를 사용할 수 있으나, 자바나 파이썬에서는 주로 임포트(import)를 사용한다.
문법[편집]
include 문법(사용법)은 다음과 같다.
#include <헤더파일> 또는 #include "헤더파일"
이렇게 두 가지 형식이 있는데 #include<헤더파일>은 컴파일러의 라이브러리 폴더에서 헤더파일을 찾는다. #include"헤더파일"은 현재 디렉토리에서 헤더파일을 찾는다.만약 없다면 컴파일러의 라이브러리 폴더에서 헤더파일을 찾는다. 그러므로 <>보다 ""가 범위가 더 크고 이 경우 사용자가 헤더파일을 만들었을 경우 사용한다.[1]
stdio.h[편집]
stdio.h은 Standard Input/Output library (표준입출력 라이브러리)의 약어로써, C 언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 형의 입출력 함수가 포함된 헤더 파일이다. 1970년대, 벨 연구소의 마크 레스크가 쓴 "portable I/O package"로부터 내려저 왔다. C++에서는 호환성을 이유로 stdio.h 헤더 파일이 포함되어 있는 것과 마찬가지로 cstdio도 std 이름공간에서 stdio.h의 함수와 형식이 선언되어 있다.[2]
멤버 함수[편집]
stdio.h에 선언되어 있는 함수는 일반적으로 파일 조작 함수와 콘솔 입출력 함수 둘로 구분된다. 주로 쓰이는 것들만 간단하게 구분 해보겠다.
- 파일 조작 함수
- remove : 파일을 삭제한다.
- rename : 파일 이름을 바꾼다.
- rewind : 파일 위치를 초기화한다.
- 콘솔 입출력 함수
- printf : 표준 출력 스트림에 출력한다.
- scanf : 표준 입력 스트림으로 입력한다.
- ungetc : 문자를 스트림의 역순으로 읽는다.
- putc : 스트림에 문자를 쓴다.
- fread : 파일로부터 데이터를 읽어들인다.
- fwrite : 파일로부터 데이터를 쓴다.
- fgets : 파일로부터 문자열을 읽는다.(파일의 끝이거나 개행 문자의 끝)
- getchar : 주어진 스트림으로부터 문자를 읽고 리턴한다. 강화된 파일 지시자로서, 주어진 스트림을 한 번 이상으로 평가하는 fgetc와 같은 효과를 내는 매크로이다.[2]
iostream[편집]
표준 스트림에서 읽기 및 쓰기를 제어하는 개체를 선언한다. 이러한 경우는 대개 C++ 프로그램에서 입력 및 출력을 수행 하는 데 필요한 유일한 헤더이다.
설명[편집]
개체는 다음 두 그룹으로 나뉜다.
- cin, cout , cerr 및 clog 는 바이트 지향적 이며, 기존의 바이트 단위 전송을 수행한다.
- wcin, wcout , wcerr 및 wclog 는 너비가 가로 이며 프로그램이 내부적으로 조작 하는 와이드 문자로 변환된다.
표준 입력과 같은 스트림에서 특정 작업을 수행한 후에는 동일한 스트림에서 다른 방향의 작업을 수행할 수 없다. 따라서 프로그램은 같은 두 가지 모두에서 서로 바꿔 작업할 수 없다. 이 헤더에 선언 된 모든 개체는 특이 한 속성을 공유 한다 .이 속성은를 포함 하는 변환 단위에서 정의 하는 정적 개체 앞에 생성 된다고 가정할 수 있다. 마찬가지로, 정의한 해당 정적 개체에 대 한 소멸자 이전에 이러한 개체가 제거 되지 않는다고 가정할 수 있다. 그러나 출력 스트림은 프로그램 종료 중에 플러시 된다. 따라서 프로그램 시작 전과 프로그램 종료 후에 안전하게 표준 스트림에서 읽거나 쓸 수 있다. 그러나 이 보장은 범용이 아니다. 정적 생성자는 다른 변환 단위에서 함수를 호출할 수 있다. 호출 된 함수는 변환 단위가 정적 생성에 참여 하는 불확실한 순서를 감안하여 이 헤더에 선언 된 개체가 생성 되었다고 가정할 수 없다. 이러한 컨텍스트에서 이러한 개체를 사용 하려면 먼저 클래스의 개체를 생성 해야 한다.
- 전역 스트림 개체
- cerr : 표준 오류 출력에 대한 버퍼링되지 않은 삽입을 바이트 스트림으로 제어한다.
- cin : 표준 입력에서의 추출을 바이트 스트림으로 제어한다.
- clog : 준 오류 출력에 대한 버퍼링된 삽입을 바이트 스트림으로 제어합니다.
- cout : 표준 출력에 대한 삽입을 바이트 스트림으로 제어한다.
- wcerr : 표준 오류 출력에 대한 버퍼링되지 않은 삽입을 와이드 스트림으로 제어한다.
- wcin : 준 입력에서의 추출을 와이드 스트림으로 제어한다.
- wclog : 준 오류 출력에 대한 버퍼링된 삽입을 와이드 스트림으로 제어한다.
- wcout : 넓은 스트림으로 표준 출력에 삽입을 제어한다.[3]
time.h[편집]
이는 C언어에서 시간 관련 함수를 모아놓은 라이브러리다.
- 시간 관련 함수들
- clock : 시계 프로그램
- difftime : 두 개 시간의 차이를 구한다.
- mktime : tm 구조체를 time_t 로 바꾼다.
- time : 현재 시간을 구한다.
- 변환 관련
- asctime : tm구조체를 문자열로 바꾼다.
- ctime : time_t 값을 문자열로 바꾼다.
- gmtime : time_t 를 UTC 시간으로 하여 tm으로 바꾼다.
- localtime : time_t를 현지 시간으로 하여 tm으로 바꾼다.
- strftime : 특정한 형식(사용자가 지정한 형식 문자열)으로 시간을 출력한다.
- 매크로
- CLOCKS_PER_SEC : 1초 당 클록 수
- NULL : 널 포인터
- 타입
- clock_t : 클록 타입
- size_t : 부호 없는 정수형
- time_t : 시간 타입
- struct tm: 시간 구조체[4]
각주[편집]
- ↑ wowon〈C언어 include 사용법〉, 《티스토리》, 2017-05-29
- ↑ 2.0 2.1 〈stdio.h - 위키백과, 우리 모두의 백과사전〉, 《위키백과》
- ↑ 〈<iostream> | Microsoft Docs〉, 《마이크로소프트독스》
- ↑ 〈C언어 레퍼런스 - time.h 헤더파일〉, 《모도코드》, 2010-12-25
참고자료[편집]
- wowon〈C언어 include 사용법〉, 《티스토리》, 2017-05-29
- 〈<iostream> | Microsoft Docs〉, 《마이크로소프트독스》
- 〈C언어 레퍼런스 - time.h 헤더파일〉, 《모도코드》, 2010-12-25
같이 보기[편집]