| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 티스토리챌린지
- 코딩테스트사이트추천
- 데이터베이스
- 항해99
- 프로그래밍 언어
- 인접 행렬
- 파이썬
- 자바
- Java
- 개발자루틴
- 코테공부
- 코딩테스트준비
- 연결 리스트
- til
- 오블완
- 1일1코테
- 코드트리
- 웹
- #코드트리 #코딩테스트 #코테공부 #백트래킹 #알고리즘 기초
- 99클럽
- 개발자취업
- 갭체크
- 프로그래머스
- 코딩테스트
- 운영체제
- 알고리즘
- 자바스크립트
- 자료구조
- 플로이드-워셜
- C
- Today
- Total
와드의 블로그
6. 표준 출력 함수 본문
(1) 라이브러리
* 라이브러리란?
C 언어 프로그램은 함수 단위로 구성되는데, 이러한 함수들 중 내용이 거의 변하지 않는 함수들을 모아서 한 파일에 담아 효과적으로 관리할 수 있게 한다.
* 라이브러리 파일의 등장 이유
목적 파일은 소스 파일을 컴파일해서 만들어지고, 소스 코드가 변경되지 않았다면 컴파일 과정 없이 전에 만들어 놓은 목적 파일을 그대로 사용해서 실행 파일을 만든다.
그러나 이 경우 목적 파일에 포함되어 있는 함수의 내용이 실제 사용 여부와 상관없이 모두 실행 파일에 포함된다.
라이브러리 파일은 자신이 가지고 있는 함수들 중에서 실제로 다른 소스 파일에서 사용한 함수의 기계어만 분리할 수 있도록 목적 파일을 재구성한 것이다.
따라서 링크할 때 실제로 사용되는 함수들만 실행 파일에 포함시킨다.
(2) 헤더 파일과 전처리기
* 헤더 파일의 필요성
C 언어가 서로 다른 소스 파일에 있는 함수를 참조하려면 함수 원형을 알아야 컴파일이 가능하다.
따라서 특정 파일에 함수 원형들을 미리 선언해 두고 사용하는데, 이것을 헤더 파일이라고 한다.
* 전처리기
프로그래머가 원하는 사항을 컴파일러에 직접 지시하는 문법이다.
* #include 전처리기
컴파일러에 자신이 명시한 파일(주로 헤더 파일)을 읽도록 지시한다.
#include를 사용하는 두 가지 방식
- #include <헤더 파일 이름>: 비주얼 스튜디어에서 제공하는 헤더 파일을 포함할 때
- #include "헤더 파일 이름": 프로그래머가 정의한 헤더 파일을 포함할 때
* #define 전처리기
상수나 명령문을 치환하는 문법이다.
# define 전처리기의 사용
# define MAX_COUNT 3 // 3이라는 상수를 MAX_COUNT로 치환
# define POW_VALUE(a) (a * a) // 명령을 치환, 메크로 함수라고 함
(4) 표준 라이브러리와 표준 출력 함수
* 표준 라이브러리
C 언어 컴파일러를 만든 회사들이 프로그래머들을 위해 운영체제별로 다양한 기능을 구현한 함수를 제공하는데, 이를 C 언어 표준 함수라 한다.
이 함수들은 소스 코드를 변경할 필요가 없기 때문에 라이브러리 형식으로 제공되는데, 이 라이브러리가 C 표준 라이브러리이다.
* 표준 출력 함수
#include <stdio.h>
int putc(int character, FILE* stream); // 스트림에 문자를 쓴다.
int putchar(int character); // 표준 출력에 문자를 쓴다.
int puts(const char* str); // 표준 출력에 문자열을 쓴다.
(5) 문자열 출력 함수 printf
* printf 함수
표준 출력에 형식화된 문자열을 출력한다.
* 서식 지정자
- %d: 정수
- %f: 실수
- %c: 문자
- %s: 문자열
- %u: 부호 없는 정수
- %o: 8진수
- %x: 16진수
- %e: 실수의 지수 형태
* 출력 문자열 정렬
#include <stdio.h>
int main()
{
int data1 = 1;
double data2 = 3.141592;
printf("%5d\n", data1); // 출력 칸 수 조절
printf("%-5d %05d", data1, data1); // 오른쪽 or 왼쪽 정렬, 공백을 0으로 대체
printf("%8.4f", data2); // 전체 칸 수와 소수점 자릿수 지정
return 0;
}
* 제어 코드
- \n: 캐럿을 다음 줄로 이동
- \": 큰따옴표 출력
- \': 작은따옴표 출력
- \\: 백슬래시 출력
참조문헌: C언어 입문