본문 바로가기

프로그래밍(코딩)/C언어

C언어 독학하기-(4) C언어 표준 출력 함수, 라이브러리에 대하여

반응형

'C언어 독학하기-(4) C언어 출력 함수, 라이브러리 대하여'

 

 

지난 글에서 C언어 함수에 대해 알아보았다면 이번 글에서는 C언어의 표준 출력 함수와 라이브러리에 대해 알아보도록 하겠습니다.

 

 



 

<06-1 라이브러리>

 

목적 파일(.obj): 컴파일러가 소스 파일을 컴파일하면 만들어지는 파일

(-> 고정적인 함수들까지 소스 파일에 포함되어 있으면 소스 코드가 길어져 가독성이 떨어지고, 컴파일 시간도 오래 걸리는 점을 개선해줌.)

 

 

 

 

하지만 목적 파일은 포함되어 있는 함수의 실제 사용 여부와 상관없이 모두 실행 파일에 포함되어 상당히 비효율적인 부분이 존재한다. 그래서 C언어에 '라이브러리' 개념이 쓰이게 되었다.

 

라이브러리(.lib): 파일 내의 함수들 중에서 실제로 다른 소스 파일에서 사용한 함수의 기계어만 분리할 있도록 목적 파일을 재구성한 .

 

 

 


 

<06-2 라이브러리 사용 설명서, 헤더 파일>

 

C언어에서는 서로 다른 소스(목적 파일, 라이브러리 파일) 파일에 있는 함수를 참조하려면 함수 원형을 파악해야 컴파일이 가능하다.

 

하지만 일일이 함수 원형들을 선언하기에는 비효율적이므로 함수 원형들을 특정 파일에 미리 선언해 두고 사용한다.

 

헤더 파일: 함수 원형들을 미리 선언해놓은 파일

 

 

 

 

그림에서 헤더 파일이 선언되어 있지만, 컴파일러에서 헤더 파일을 먼저 읽도록 지시되지 않아 오류 발생합니다. 문제 해결 방법을 다음 내용에서 알아보도록 하겠습니다.

 

 

 


 

<06-3 전처리기>

 

전처리기: 프로그래머가 원하는 사항을 컴파일러에 직접 지시하는 문법

 

 

 

-#include 전처리기-

 

#include 전처리기: 컴파일러에 자신이 명시한 파일을 읽도록 지시한다.

 

 

 

#include <헤더 파일 이름> : 컴파일러(비주얼 스튜디오)에서 제공하는 헤더 파일을 포함할

#include "작업 경로/헤더 파일 이름" : 프로그래머가 정의해 사용하는 헤더 파일을 포함할

 

 

 

 

아까 위에서 오류가 발생했던 곳에 #include 전처리기를 이용해 선언함으로써 정상적으로 소스 파일이 컴파일이 가능합니다.

 

 

 

-#define 전처리기-

 

#define 전처리기: 상수나 명령문을 치환하는 문법

 

 

 

 

#define 문법을 통해 소스 파일에서 MAX_COUNT라는 단어는 상수 3으로 치환시킨다.

 

#define 문법을 통해 소스 파일에서 POW_VALUE a 값은 제곱이 되어진다. 이를 '매크로 함수'라고 .

 

 

 


 

<06-4 C 표준 라이브러리와 표준 출력 함수>

 

C언어 컴파일러에서는 운영체제별로 다양한 기능을 구현한 함수를 제공하는데, 이를 'C언어 표준 함수'라고 한다.

 

'C언어 표준 함수' 소스 코드를 변경할 필요 없음 -> 'C 표준 라이브러리' 제공

 

 

 

-C언어 표준 출력 함수-

 

단일 문자 출력 함수 putchar, putc

문자열 출력 함수 puts, printf

 

 

 


 

<06-5 문자열 출력 함수 printf>

 

printf: 변수 값을 일정한 형식으로 출력하는 함수이다.

 

 

 

printf 함수 예시

 

 

 

-(printf 함수) 키워드 : 출력 형식-

 %d : 정수(10진수)

%f : 실수

%c : 문자

%s : 문자열

 

 

 

-% 키워드 중심의 출력 특성-

 

-%c 변수가 가지고 있는 값을 아스키 표에 대응하는 문자로 출력한다.

-실수와 정수는 숫자를 표현하는 방식이 다르다.

-%u 변수 값을 부호를 고려하지 않는 10 정수 형태로 출력한다.

-%d %u 변수 크기를 4바이트 값으로 변환해서 출력한다.

-%o 8진수, %x 16진수 형태로 정수를 출력한다.

-%e 실수를 지수 형태로 출력한다.

 

 

 

float 형식 처리 시에 유의할 점

 

 

 

-출력 문자열 정렬-

 

출력 조절하기 (%출력 칸의 d)

 

오른쪽 정렬 (%+출력 칸의 d)

왼쪽 정렬 (%-출력 칸의 d)

 

공백 문자 대신 0 채우기 (%0출력 칸의 d)

 

실수의 소수점 자릿수 지정 (%전체 .소수점 자릿수f)

 

 

 

 

-제어 코드 사용 방법-

 

_ : 캐럿(입력의 위치를 알려주는 문자)

 

\n : 캐럿을 다음 줄로 이동

\r : 캐럿을 해당 줄의 처음으로 이동

\t : 캐럿을 탭만큼 이동

\b : 캐럿을 바로 칸으로 이동

\a : 시스템 스피커로 경고음 발생

\" : 따옴표 출력

\' : 작은따옴표 출력

 

 

\(백슬래시) 키워드의 원래 의미를 없애는 용도로 사용된다.

 

ex)

printf(" \"Hello\" "); -> "Hello" 출력

 

 

 



 

 

 

이렇게 C언어 프로그래밍을 위한 C언어 표준 출력 함수와 목적 파일, 라이브러리, 헤더 파일 등의 개념에 대해 학습하였습니다. 이제 그 다음으로 연산자 부분을 다루기 때문에 쉽게 진도를 나갈 수 있을 것 같습니다.

 

 

 

 

 

 

 

 

 

 

 

추천하는 글

 

 

C언어 독학하기-(3) C언어 함수에 대하여

'C언어 독학하기-(3) C언어 함수에 대하여' 이번에는 C언어 프로그래밍에서 가장 중요한 핵심이라고 볼 수 있는 '함수'에 대해 정리해보도록 하겠습니다. C언어 함수란? -정해진 단위 작업을 수행

anywhereifyoucan.com

 

 

로지텍 G413 기계식 키보드 개봉기 및 사용 후기

'로지텍 G413 기계식 키보드 개봉기 및 사용 후기' 개인적으로 프로그래밍을 할 때 기존에 사용하던 사무용 키보드는 키감이 좋지 않아 기계식 키보드를 찾다가 개인적으로 선호하는 브랜드인 로

anywhereifyoucan.com

 

반응형