일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C언어 매크로
- C언어 배열
- SQL
- C언어 함수
- Oracle
- jsp
- HTML5
- Naver SmartEditor
- java
- C언어
- TCP/IP 소켓
- C언어 메모리
- C언어 파일입출력
- placehoder
- 구글 reCaptcha
- Vim
- C언어 변수
- C언어 구조체
- 포인터
- Spring email
- gcc
- 자바
- 오라클
- 역순
- 날짜
- URL 다운로드
- Spring google
- 텍스트 파일 읽기
- GUI
- Google reCaptcha
- Today
- Total
easy software
C언어 #define을 이용한 매크로 함수와 매크로 상수 예제 본문
매크로함수와 매크로상수를 작성하는 간단한 예제를 해보겠습니다.
1번 문제(매크로 함수)
#include <stdio.h>
//덧셈기능의 매크로함수
#define Add(x, y, z) ((x) + (y) + (z))
//곱셈기능의 매크로함수
#define Mul(x, y, z) ((x) * (y) * (z))
int main(void){
int a, b, c;
printf("세 개의 정수를 입력하세요 : \n");
scanf_s("%d %d %d", &a, &b, &c);
//매크로함수 Add호출
printf("덧셈 결과 : %d \n", Add(a, b, c));
//매크로함수 Mul호출
printf("곱셈 결과 : %d \n", Mul(a, b, c));
return 0;
}
위의 코드를 보면, Add와 Mul이라는 매크로함수가 작성되어있습니다.
각각의 매크로함수는 세 개의 인자를 받아서, 덧셈과 곱셈연산을 수행합니다.
매크로 몸체에서는 모든 인자들을 괄호로 감싸서 연산을 수행하고 있습니다.
괄호로 감싸는 이유를 잘 모르겠다고 하시면,
제 블로그의 매크로와 전처리 카테고리 첫번째 글을 봐주시기 바랍니다.
위의 코드를 전처리기가 전처리하게 되면, 아래와 같은 코드가 됩니다.
int main(void){
int a, b, c;
printf("세 개의 정수를 입력하세요 : \n");
scanf_s("%d %d %d", &a, &b, &c);
//매크로함수 Add호출
printf("덧셈 결과 : %d \n", ((a) + (b) + (c)));
//매크로함수 Mul호출
printf("곱셈 결과 : %d \n", ((a) + (b) + (c)));
return 0;
}
2번 문제(매크로 상수)
#include <stdio.h>
//원주율 PI를 매크로 상수로 정의
#define PI 3.1415
int main(void){
double input;
printf("원의 반지름을 입력하세요 : ");
scanf_s("%lf", &input);
input = input*input*PI;
printf("원의 넓이는 %f입니다. \n", input);
return 0;
}
이번에는 PI가 3.1415로 작성되어 있습니다.
즉, PI는 상수로써 #define 지시자를 이용하여 매크로 상수를 만든것입니다.
위의 코드를 전처리기가 전처리하면 아래와 같이 됩니다.
int main(void){
double input;
printf("원의 반지름을 입력하세요 : ");
scanf_s("%lf", &input);
input = input*input*3.1415;
printf("원의 넓이는 %f입니다. \n", input);
return 0;
}
'C언어 > 매크로와 전처리기(preprocessor)' 카테고리의 다른 글
C언어 #define - 삼항연산자를 매크로 함수로 작성하기 (0) | 2015.02.15 |
---|---|
C언어 매크로 지시자 #define 과 매크로함수 그리고 전처리 (0) | 2015.02.15 |