Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 핵심 요약
- Tipsware
- 미가공
- 김성엽
- 포트폴리오
- win32
- visual
- MyThread
- mfc 실습
- MyTread
- MFC
- C언어
- Time
- 유료강좌
- linux
- mysql
- 별찍기
- do it c
- 충무창업큐브
- C++
- 정처기 독학
- C
- MFC 예제
- ListBox
- SSG
- 도움말
- 실습
- tips강좌
- 마이크로소프트
- 정보처리기사
Archives
- Today
- Total
History
#define으로 구성한 매크로 함수의 표현 본문
728x90
반응형
일반적으로 우리가 int 변수를 통해 숫자를 printf로 출력할 때 아래와 같이 코드를 작성한다.
#include<stdio.h>
int main()
{
int num = 10, data = 5;
printf("num=%d\n",num);
printf("data=%d\n",data);
return 0;
}
그러나 극단적인 예시로 우리가 출력해야 할 int 변수가 10개, 20개까지 늘었다. 그러면 우리는 printf함수를 20번을 적어야 하고, printf함수 안에 어떤 변수가 출력되는지 알려주는 문자열도 각 변수에 맞게 바꿔줘야 한다. 얼마나 귀찮은 일인가.
이러한 불편함을 줄여줄 수 있는 방법은 #define(매크로 함수)을 이용하는 것이다.
아래 코드를 보자.
#include<stdio.h>
#define ShowVar(x) printf("%s=%d\n",#x,x)
int main()
{
int num = 10, data = 5;
ShowVar(num);
ShowVar(data);
return 0;
}
위와 같이 printf함수는 한번만 사용하고 매크로 함수를 이용해서 모든 값을 출력했다.
#define을 사용하여 매크로 함수를 만들 때 #을 이용하면 전달된 인자를 문자열로 출력이 가능하다.
보통 문자열을 대입할 때 아래 코드와 같이 작성한다.
char *p_char="asdqwe";
그리고 아래와 같이 ""를 연속으로 사용해도 위의 코드와 같은 결과가 대입된다. 그렇지만 권장하지는 않는다.
char *p_char="asd" "qwe";
이 규칙은 printf에도 적용된다.
int main()
{
printf("HELLO\n" "World\n");
return 0;
}
위 코드를 #define(매크로 함수)으로 응용해보면 아래와 같이 사용할 수 있다.
#define ShowVar(x) printf(#x "=%d\n",x)
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[c언어]별 찍기3 (0) | 2022.10.22 |
---|---|
실수로 변수 이름을 @@@1,2,3으로 개발했을 때 (0) | 2022.10.22 |
[C언어]해당 문자가 영문자인지 확인하기(isalpha) (0) | 2022.10.05 |
[c언어]소문자를 대문자로 바꾸는 방법 (1) | 2022.10.04 |
[c언어]다섯 개의 정숫값을 입력받고 최댓값 구하기 (1) | 2022.10.04 |
Comments