C언어/시큐어코딩
2025. 3. 13.
매크로 함수 VS 인라인 함수
C 언어에서 성능을 높이기 위해 함수 호출을 생략하는 두 가지 방법이 있는데매크로함수(#define)와 인라인함수(inline)가 있는데 둘 다 성능을 최적화하는 목적이 있지만, 동작 방식과 안전성에서 차이가 있습니다. 매크로 함수1. 매크로 함수는 전처리기 단계에서 코드가 단순 치환되고 함수 호출 오버헤드가 없습니다2. 하지만 디버깅이 어렵고, 타입 검사가 불가능하며, 예상치 못한 부작용이 발생할 수 있습니다#include #define SQUARE(x) ((x) * (x)) //매개변수를 괄호로 감싸야 안전int main() { int a = 5; printf("SQUARE(5) = %d\n", SQUARE(a)); //25출력 //예상치 못한 동작 발생 가능 printf("..