와드의 블로그

6. 표준 출력 함수 본문

프로그래밍 언어/C

6. 표준 출력 함수

Ward 2021. 9. 10. 16:49

(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언어 입문

'프로그래밍 언어 > C' 카테고리의 다른 글

8. 조건문  (0) 2021.09.10
7. 연산자  (0) 2021.09.10
5. 함수  (0) 2021.09.04
4. 상수와 변수  (0) 2021.09.04
3. 자료형  (0) 2021.09.04