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
- 마이크로소프트
- MFC 예제
- 김성엽
- ListBox
- 실습
- visual
- SSG
- 충무창업큐브
- C언어
- Tipsware
- 정처기 독학
- mfc 실습
- C
- linux
- C++
- tips강좌
- win32
- MyTread
- do it c
- 별찍기
- 정보처리기사
- MFC
- mysql
- 미가공
- 도움말
- Time
- 포트폴리오
- 핵심 요약
- MyThread
- 유료강좌
Archives
- Today
- Total
History
실수로 변수 이름을 @@@1,2,3으로 개발했을 때 본문
728x90
반응형
아래와 같이 프로그래밍을 하다가 귀찮아서 변수명 대충 짓고 나중에 헷갈려서 각 변수를 의미 있게 바꾸려고 하는데 코드가 복잡하게 꼬여있어서 감당이 안될 때 어떻게 해야 할까?
int data1,data2,data3;
int result1,result2,result3;
int num1,num2,num3;
변수명을 안 바꾸고 의미 있게 변수명을 바꾸려면 매크로 함수를 사용해야 한다.
매크로 함수는 #을 사용할 때는 문자열로 처리되지만 #을 2번 사용해서(##) 처리하면 단순 구분자로 사용된다. 이제 단순 구분자로 바뀌는 특성을 이용해 나름대로 변수를 치환해보자.
#define LO_STATE(data) data##1
위와 같이 ##을 두 번 적고 1을 적으면 data와 1을 구분해준다. main에서 변수명이 num으로 넘기면 num1으로 처리되는 것이다.
아래 코드를 보면서 사용법의 감을 익히도록 하자
#define LO_STATE(data) data##1
#define NOMAL_STATE(name) name##2
#define HI_STATE(name) name##3
#define ShowData(x) printf("%s=%d\n",#x,x) //저번 블로깅 복습
int main()
{
int data1, data2, data3;
int result1, result2, result3;
int num1, num2, num3;
LO_STATE(data)=7;
NOMAL_STATE(data) = -1;
HI_STATE(data) = 9;
LO_STATE(result) = 7;
NOMAL_STATE(result) = -1;
HI_STATE(result) = 9;
LO_STATE(num) = 7;
NOMAL_STATE(num) = -1;
HI_STATE(num) = 9;
ShowData(data1);
ShowData(data2);
ShowData(data3);
ShowData(result1);
ShowData(result2);
ShowData(result3);
ShowData(num1);
ShowData(num2);
ShowData(num3);
return 0;
}
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[C++] 표준 입력 스트림에서 입력 오류 처리하는 방법 (0) | 2022.10.26 |
---|---|
[c언어]별 찍기3 (0) | 2022.10.22 |
#define으로 구성한 매크로 함수의 표현 (0) | 2022.10.22 |
[C언어]해당 문자가 영문자인지 확인하기(isalpha) (0) | 2022.10.05 |
[c언어]소문자를 대문자로 바꾸는 방법 (1) | 2022.10.04 |
Comments