inline, __inline__ 에 대해...?
글쓴이: kkojiband / 작성시간: 월, 2003/07/28 - 9:52오전
제가 알기로는 inline 은 매크로 함수로 선언할때 사용을 하고, 그건 함수의 코드를 컴파일시 읽어들여놔서 실제 수행시에는 속도를 빠르게 해준다고 알고 있었는데요,
제가 간단히 테스트 프로그램 만들어서 inline 선언했을 때와 안 했을때를 비교해보니 차이점이 거의 없더군요...
main 함수 앞에 함수 코드 부분을 넣어두면 차이가 있긴 있는데,
inline을 넣고 컴파일을 해보면 함수 코드 부분이 main 함수 뒤로 이동을 하더군요...이것도 차이라면 차이겠죠...--;
inline 이 실지로 어떤 일을 해주는거죠? 그냥 코드만 봐서는 아무 일도 안 하는거같습니다...
그리고 __inline__ 은 inline 과 같은거 같은데 맞나요??
Forums:
inline과 매크로 함수는 다릅니다..매크로 함수는 컴파일할때 함수
inline과 매크로 함수는 다릅니다..
매크로 함수는 컴파일할때 함수대신 매크로에 정의된 내용으로 바뀌어 컴파일됩니다..
inline은 함수를 호출하지않고 그 자리에 함수의 실행코드를 삽입하여 함수호출에 생기는 오버헤드를 줄일때 사용합니다만...실제로는 거의 안쓰입니다...
inline키워드를 주면 컴파일러에게 이건 inline으로 했으면 좋겠다고 알려주는것이지 꼭 inline으로 된다는 보장이 없습니다..그리고 이것이 없다하더라도 컴파일러가 inline으로 할만한건 알아서 inline으로 한다고 들었습니다...
아...그렇군요...^^;전 또 선언만 하면 꼭 그렇게되는건지 알
아...그렇군요...^^;
전 또 선언만 하면 꼭 그렇게되는건지 알고 안되서 이상하다고 생각했었는데...--;
답변 감사드립니다~!
이제 졸업이다...사랑하는 SKKULUG 후배들아 안녕~
요즘은 다 무시합니다.
gcc조차도 inline 지시어를 무시하는것 같더군요.
최적화 기술이 발달해서인지.
Written By the Black Knight of Destruction
gcc가 inline을 무시한다구요?
gcc가 inline을 무시할 리가 있나요.
테스트해보니까 잘 작동하는걸요.
혹시 컴파일 옵션에 -O를 안 넣으신 것 아닌가요?
-O를 넣어야 inline을 인식하는 것 같은데.
그리고 __inline__은 GNU C extension이고 inline은 C99 표준입니다.
가능하면 inline을 쓰는 게 좋겠죠.
--
http://dongsupark.de/
volatile이나 register 키워드처럼, inline 키워드는 특
volatile이나 register 키워드처럼, inline 키워드는 특별한 강제력을 가지고 있지 않습니다.
함수를 매번 풀어쓰는 방식이 아니라 다른 최적화 방법을 사용하더라도 상관 없습니다. 또한, inline 키워드가 아무런 효력을 발휘하지 않는다 하더라도 전혀 이상할 것이 없습니다.
댓글 달기