static inline 함수 질문...
글쓴이: hwanikani / 작성시간: 목, 2011/11/17 - 8:44오전
다음과 같은 코드가 있을때 컴파일러는 test()를 어떻게 처리 하나요?
static void test(); // declaration without inline keyword
int main()
{
extern inline void test(); // declaration with inline keyword
test(); // Does compiler consider inlining or not?
}
static void test() // definition without inline keyword
{
}
-------------------------------------------------------------------------------
좀더 extreme한 경우를 본다면:
static void test()
{
}
int main()
{
test();
}
inline static void test(); // inline 맨 마지막에 선언 ㅋㅋ
----------------------------------------------------------------------
위 경우 test()가 inline 선언 된걸로 처리되나요?
(물론 inline되는지 안되는지는 컴파일러 마음이지만, 최소한 inline 키워드가 있는걸로 취급하는지 안하는지가 궁금합니다).
Forums:
gcc -S로 확인해보세요
gcc -O2 -Wall -S로 어셈블러 소스를 비교해보면 각각의 경우 컴파일러가 어떻게 처리하는지 알 수 있습니다.
제가 해보니 어디든 inline 붙어있으면 그 펑션을 inline으로 처리해주는 것 같습니다.
하지만 남들이 쓰는대로(커널소스에 많은 inline function들처럼) 쓰는게 좋지 않을까요?
없음
댓글 달기