no swim no life

static inline 본문

work/fundamental

static inline

달려간다 2011. 1. 3. 20:10

코딩 중 macro 만으로 처리 하기에 아쉬운 부분이 있다. 이 때 inline의 이용을 생각해 볼 수 있는데,
inline을 그대로 사용하려 하면서 아차~ 싶은 부분이 선언한 inline 함수의 scope이다.

그래서 확인해 본 결과...

static 선언과 상관없이 해당 파일 내에서 inline 함수의 기능은 동일하지만, static에 의한 scope 제한이 없다면
다른 파일에서 호출 가능한 일반 함수가 추가(추가인지, inline 선언이 배제된 것인지 확인이 필요)로 생성된다.

아마도 이런 상황을 노리고 inline 선언을 하지는 않을 것이라 예상하기 때문에,
이것은 대부분 기대하지 않은 코드일 것이다.

그리고, 정의한 inline 함수와 동일한 일반 함수가 생성된 경우, (또는 inline 기능이 배제되었을 경우)
함수 호출부의 inline 함수 호출은 기대하던 동작이 아닐 수 있다.

만약, inline 함수를 전역 매크로 처럼 사용하길 원한다면 extern을 이용하는 것이 좋은 방법이다.

 

'work > fundamental' 카테고리의 다른 글

TBB-01, Intel Threading Building Block  (0) 2011.01.03
time_t 가 signed 인 이유.  (0) 2010.11.24
HMAC  (0) 2010.07.27
Comments