void * __attribute__ ((weak)) ... 에서 앞의 __attribute__

air74의 이미지

안녕하세요.

갈수록 허접한 질문만 쓰게 되네요.

void * __attribute__ ((weak)) 불라불라(함수이름) 에서 앞에 붙는

__attribute__ ((weak)) 의 의미는 모에요?

그럼 수고 하세요.

익명 사용자의 이미지

object oriented의 polymorphism과 비교할 수도 있을 것 같은데, 같은 이름의 심볼이 있으면 weak symbol이 strong symbol에게 overriding이 되게 하는 것입니다. 예를 들어 shared library에 a라는 weak symbol이 있을 때 이를 사용하는 프로그램에서 a라는 심볼이 있으면 프로그램에서는 shared library가 아닌 자신에 있는 것을 사용하게 됩니다. shared library에 있는 것이 일반 심볼이라면 같은 이름의 심볼이 있다고 링크가 안되겠죠.

junghwanz의 이미지