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 | 29 | 30 |
31 |
Tags
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- /
- chatgpt #gpt #챗지피티 #ai
Archives
- Today
- Total
개발자 데뷔!
[C/C++ 8.0] 매크로(Macro) 함수 본문
1. 매크로 사용법)
#define NAME 치환할값
-> NAME이 치환할값으로 치환됨, 상수, 함수 둘다 가능
2. 매크로 사용이유)
가독성향상/코드수정용이/빠름
메모리차지하지않음_메모리할당X, 전처리기단계에서 문자열 자체를 치환 => 컴파일 전 치환됨
3. 매크로 사용규칙)
#include 아래에 위치/ 전부대문자
ex) SIZE등을 매크로로 지정
4. 유의사항***)
함수값이 달라질 수 있음
ex) #define func(x) x*x 에서, func(2+5)를 호출하면
7*7 =49 가 아닌, 2+5*2+5 = 17 이 호출됨
ex) #define max_macro(x,y) (x>y?x:y) 대신 전체괄호를 뺀
#define max_macro(x,y) x>y?x:y 를 사용하면, 2*max(3,2)를 호출하면
2*(3>2?3:2) =2*(3)=6 이 아닌, 2*3>2?3:2 즉 (6)>2?3:2 =3 이 호출됨
ex) max(3,i++)같은 것도 문제됨
?? 책 p.22쪽 / code complete 책추천 / 시간오래걸릴수도 있음
'프로그래밍 언어 > C' 카테고리의 다른 글
[C/C++ 2.10] ASCII(아스키 코드) 와 형변환(casting) (0) | 2022.03.15 |
---|---|
[C/C++ 7.4] 함수에서 값 2개이상 return 하기 (0) | 2022.03.15 |
[C/C++ 3.4] 2중 for문 마스터 (2차원 배열 접근하기) (0) | 2022.03.11 |
[C/C++ 3.3] 2차원 배열 초기화 (0) | 2022.03.11 |
[C/C++ 3.2] 1차원 배열 초기화 (0) | 2022.03.11 |