반응형
매크로 함수는 일반 함수를 정의하는 것보다 복잡합니다. 함수의 크기가 크면 매크로로 정의하는 것 자체가 불가능할 수 있습니다. 디버깅도 매우 어렵습니다. 그럼에도 불구하고 함수를 매크로로 정의하는 이유는 무엇일까요?
1 상대적으로 실행 속도가 빠르다
매크로 함수는 일반 함수에 비해 실행속도가 빠릅니다. 호출과 동시에 호출된 함수를 위한 "스택 메모리가 할당됨 + 실행 위치 이동 + 매개변수로 인자 전달 + retrun 문을 통한 값의 반환"이 실행되기 때문입니다. 또한 선행처리기가 매크로 함수 호출을 하기 때문에 빈번하게 호출되더라도 실행 속도에 영향을 주지 않습니다.
2 자료형에 따라서 별도로 함수를 정의하지 않아도 된다.
전달인자의 자료형에 상관없이 제대로 치환됩니다. 메크로 함수의 호출 문장이 매크로 함수의 몸체부분으로 단순 치환되기 때문입니다.
따라서 크기가 작고, 빈번하게 호출해야 하는 함수라면 매크로로 정의하는 것이 유리할 것입니다.
-----------------------------------
-----------------------------------
반응형
'컴퓨터 공학 > C, C++' 카테고리의 다른 글
[ C ] 전처리기 이해하기5_매크로 연산자 #, ## 정의/예제 (424) | 2020.07.28 |
---|---|
[ C ] 전처리기 이해하기1_전처리기(Preprocessor)란? 정의/용도, 지시문 종류 (395) | 2020.07.27 |
[ C ] 파일 입출력 이해하기5_파일 위치 서식자란? fseek, ftell 함수 (395) | 2020.07.25 |
[ C ] 파일 입출력 이해하기3_파일복사 feof/바이너리 데이터 입출력 fread, fwrite (402) | 2020.07.25 |
[ C ] 파일 입출력 이해하기2_파일의 개방모드(Mode) (398) | 2020.07.25 |
댓글