매크로 함수와 인라인 함수
일반 함수 사용 시 단점
- 호출과 반환으로 인한 메모리 할당 등 오버헤드가 발생
- 짧은 길이의 C 함수를 이용하는 것은 장점보다는 비효율적인 면이 많음
매크로 함수
- 함수 이용으로 인한 오버헤드가 발생하지 않음
- 매크로 함수의 정의 부분이 길면 프로그램의 크기가 커지게 되는 문제점이 있음
- 짧은 길이인 경우에 매크로 함수를 이용하고 긴 경우에는 일반적인 함수를 이용하는 것이 바람직
발생하는 문제
해결 방법은 괄호! 를 사용하라
#define substraction(x,y)((x)-(y))
헷갈린다면, 매크로 함수는 식이 그대로 입력 된다. 생각하라
위의 문제도, 연산자 우선순위가 바로 적용되어서 발생한 문제이기 때문이다
C++의 인라인 함수
일반 함수처럼 정의하기 쉽고, 매크로 함수처럼 동작한다
inline int substraction(int x, int y)
{
return x-y;
}
아래 매크로 함수와 동일한 의미이다!
#define substraction(x,y)((x)-(y))
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글
부 프로그램의 구현 (0) | 2023.06.14 |
---|---|
유한 오토마타 (4) | 2023.06.12 |
BNF와 EBNF 표현 방법 (0) | 2023.06.12 |
정규 표현 (0) | 2023.06.12 |
정규 문법 (0) | 2023.06.12 |