전처리기와 매크로 <3>
전처리기 명령어 #
* 문자열화 연산자이다. (Stringizing Operator)
* 매크로 함수에 매개변수에서만 사용할 수 있다.
#define STR(a) #a
* 위에 매크로 함수는 STR() 안에 들어간 문장을 문자열로 바꾸어 준다.
* 이때 STR("\n")이 들어갔다면 "\"\\n\""가 된다. 알아서 잘 바꾸어 준다.
전처리기 명령어 ##
* 직역하면 병합? 연산자이다. (Merge Operator)
* 두 단어를 병합하는데 문자열을 만드는 게 아니라 코드를 만든다고 생각한다.
#define print(num) printf("%s", stdent_name_##num)
char[] stdent_name_1 = "JunYoungJeon";
print(1);
* print(1)은 printf("%s", student_name_1)이 될 것이다.
매크로의 장점
* 가독성을 높일 수 있다.
* 함수 호출을 줄일 수 있어, 성능상의 이득이 있다.
매크로의 단점
* 디버깅이 굉장히 힘들다. 오류가 난 부분을 정확히 알 수 없다.
* 중단점을 사용할 수 없다.
귀여운 그림은 낡은 창고님이 그리셨습니다.
반응형
'C' 카테고리의 다른 글
restrict 키워드 (0) | 2021.02.06 |
---|---|
전역변수 (3) | 2021.02.06 |
전처리기와 매크로 <2> (0) | 2021.02.03 |
전처리기와 매크로 <1> (0) | 2021.02.03 |
extern 키워드 (0) | 2021.02.02 |