728x90
이번에 "게임 엔진 아키텍처" 라는 책을 읽으면서 좋은 내용이 있어서 정리해 놓는다.
나의 경우 inline 함수를 최적화를 생각하며 자주 사용하고 있다.
하지만 자세한 내용은 몰랐던 것 같다. ㅎㅎ
inline 함수가 다른 cpp 에서도 사용하기 위해서는 반드시 .h에 정의되어 있어야만 한다.
왜냐하면, 컴파일러가 inline 함수를 처리하려면 컴파일러가 함수의 정의 부분을 볼 수 있어야하는데, .cpp에 있다면 볼 수가 컴파일때에는 볼 수가 없기 때문이다.
// foo.h
inline int max(int a, int b)
{
return (a > b) ? a : b;
}
위의 경우 아주 올바른 inline 함수이다. 왜냐하면 컴파일러가 볼 수있다.
// 이 함수는 inline으로 정의하였지만, inline으로 처리되지 않는다.
// 왜냐하면 컴파일러가 함수의 구현을 볼 수 없기 때문이다.
// foo.h
inline int max(int a, int b);
// foo.cpp
inline int max(int a, int b)
{
return (a > b) ? a : b;
}
이 내용은 전혀 몰랐던 것이기 때문에 공유한다.
728x90
'Basic Programming > C, C++' 카테고리의 다른 글
C++ - region, endregion (0) | 2018.08.03 |
---|---|
C++ - Joystick 입력 받기. (0) | 2018.02.01 |
C++ - deprecated 키워드 (0) | 2017.09.15 |
C++ - 코딩에 대한 42가지 답 (The Ultimate Question of Programming, Refactoring, and Everything) (0) | 2017.09.08 |
C++ - stdafx 에 대하여... (0) | 2017.09.04 |