Computer Science/프로그래밍 언어론

매크로 함수와 인라인 함수

Beomsu Koh 2023. 6. 14.

매크로 함수와 인라인 함수

일반 함수 사용 시 단점

  • 호출과 반환으로 인한 메모리 할당 등 오버헤드가 발생
  • 짧은 길이의 C 함수를 이용하는 것은 장점보다는 비효율적인 면이 많음

매크로 함수

  • 함수 이용으로 인한 오버헤드가 발생하지 않음
  • 매크로 함수의 정의 부분이 길면 프로그램의 크기가 커지게 되는 문제점이 있음
  • 짧은 길이인 경우에 매크로 함수를 이용하고 긴 경우에는 일반적인 함수를 이용하는 것이 바람직

발생하는 문제

해결 방법은 괄호! 를 사용하라

#define substraction(x,y)((x)-(y))

헷갈린다면, 매크로 함수는 식이 그대로 입력 된다. 생각하라
위의 문제도, 연산자 우선순위가 바로 적용되어서 발생한 문제이기 때문이다

C++의 인라인 함수

일반 함수처럼 정의하기 쉽고, 매크로 함수처럼 동작한다

inline int substraction(int x, int y)
{ 
	return x-y;
}

아래 매크로 함수와 동일한 의미이다!

#define substraction(x,y)((x)-(y))

부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>

'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글

부 프로그램의 구현  (0) 2023.06.14
유한 오토마타  (9) 2023.06.12
BNF와 EBNF 표현 방법  (0) 2023.06.12
정규 표현  (0) 2023.06.12
정규 문법  (0) 2023.06.12

댓글