반응형
전처리기
※전처리
- 사용자가 작성한 소스 코드를 컴파일 하기 전에 처리해야 하는 일
※전처리기
- 전처리를 수행하는 프로그램
※전처리기 지시자
- '#'으로 시작하며, 한 줄 전체가 전처릭 지시자로 인식된다.
- 전처리기 지시자 뒤에는 세미클론(;)을 사용하지 않는다.
※전처리기 지시자 종류와 기능
전처리기 지시자 | 설명 |
#include | 헤더 파일을 include 하는 기능을 가진다. |
#define | 매크로를 정의하는 기능을 가진다. |
#undef | 이미 정의된 매크로를 해제하는 기능을 가진다. |
#if, #dlif, #else, #endif | 조건에 따라 컴파일하는 기능을 가진다. |
#ifdef | 매크로가 정의된 경우에 컴파일하는 기능을 가진다. |
#ifndef | 매크로가 정의되지 않은 경우에 컴파일 하는 기능을 가진다. |
※헤더 파일
- 확장자 'h'를 갖는 파일로 C언어가 제공하는 표준 라이브러리 함수들의 동작을 따로 정의해 놓은 파일을 의미한다.
- 헤더 파일 include 방법
- 전처리기 지시자
- 표준 입출력에 필요한 표준 라이브러리 함수를 포함하고 있는 헤더 파일명을 지정
※매크로
- #define으로 시작하는 전처리 문장을 말한다.
- #define 전처리기 지시자를 이용하여 정의하는 값을 매크로 상수라고 한다.
- 매크로 상수 정의 방법
- 전처리기 지시자
- 매크로 상수 이름 : 밴수와 구분하기 위하여 대문자로 지정
- 치환값 : 매크로 상수에 치환되는 값을 지정, 소스 코드에 나오는 모든 PI를 3.14로 치환
※헤더파일과 매크로 상수 사용하기
#include <stdio.h>
#define PI 3.14
int main(void)
{
printf("%f + %d = %f", PI, 5, PI*5);
return 0;
}
표준 출력 함수 - printf()
※사용자가 지정하는 형식에 맞추어 화면에 데이터를 출력하는 함수
※다양한 형식지정자를 통하여 여러 종류의 데이터를 출력
※printf()함수의 기본 형식
- 인수 목록에 있는 값들을 형식지정자에 있는 혁식에 따라 표준 출력 장치인 모니터로 출력한다.
- 형식지정자 : 출력 형식을 지정
- 인수 : 출력할 데이터(변수, 상수, 식 등)를 나열
※printf()함수의 형식지정자
전처리기 지시자 | 설명 |
%d | 10진 정수 형식으로 출력 |
%o | 8진 정수 형식으로 출력 |
%x,%X | 16진 정수 형식으로 출력 |
%u | 부호없는 정수 형식으로 출력 |
%p | 메모리 주소 형식으로 출력 |
%f | 실수 형식으로 출력 |
%e,%E | 지수 표현식 형식으로 출력 |
%g,%G | 부등 소수점 수를 간력한 형식으로 출력 |
%c | 문자 출력 |
%s | 문자열 출력 |
%% | %를 출력 |
#include <stdio.h>
int main(void)
{
printf("Hello C\n");
printf("%d\n",5);
printf("%f\n",5.2);
printf("%c\n",'A');
printf("%s\n","Hello C");
return 0;
}
※ \n과 같이 특수한 역활을 하는 문자를 가리켜 제어 문자라고 함
※ printf() 함수의 제어문자
제어문자 | 설명 | 제어문자 | 설명 |
\a | 경고음 소리 발생 | \t | 탭 문자 |
\b | 백스페이스 | \v | 수직 탭 |
\f | 폼 피드 | \\ | 역슬래시 |
\n | 줄 바꿈 | \' | 작은 따음표 |
\r | 캐리지 리턴 | \" | 큰 따움표 |
#include <stdio.h>
int main(void)
{
printf("Hello \t programing\t is easy\n");
printf("Hello\a \n");
printf("\'Hello \'\n");
printf("\"Hello \" \n");
printf("\\Hello \\ \n");
return 0;
}
표준 입력 함수 - scanf()
※ 표준 입력 장치인 키보드로부터 문자, 정수, 실수, 문자열을 입력받아 변수에 저장하는 함수
- 키보드로부터 입력된 값을 읽어 와서 이를 형식지정자로 지정된 형식에 맞게 변환하여 변수에 저장
※ scnaf() 함수에 사용할 변수 이름 앞에는 반드시 &기호를 붙여야 함
- & 기호 : 주소 연산자
- 키보드로부터 입력 받은 값을 메모리에 저장하는데 필요한 변수의 시작 주소를 얻기 위해 사용
※ scnaf() 함수의 기본 형식 및 예제
※scnaf()함수의 형식지정자
형식지정자 | 설명 |
%d | 10진 정수 입력 |
%o | 8진 정수 입력 |
%x,%X | 16진 정수 입력 |
%f | float형 실수 입력 |
%lf | double형 실수 입력 |
%c | 한 개의 문자 입력 |
%s | 문자열 입력 |
%u | 10진 정수(영수만 표현 가능) 입력 |
%e | float형 e표기법에 의한 실수 입력 |
%le | double형 e표기법에 의한 실수 입력 |
#include <stdio.h>
int main(void)
{
int num;
printf("num : ");
scanf("%d",&num);
printf("num = %d \n",num);
return 0;
}
#include <stdio.h>
int main(void)
{
int num1, num2;
float num3, num4;
printf("num1, num2 : ");
scanf("%d %d",&num1, &num2);
printf("num1 = %d num2 = %d \n",num1,num2);
printf("num3, num4 : ");
scanf("%f %f",&num3, &num4);
printf("num3 = %f num4 = %f \n",num3,num4);
return 0;
}
※문자 여러 개 입력 받기
- 형식지정자 사이에 공백을 사용
반응형