문제

휴대용이 약한 연결성은 얼마나됩니까?

#pragma weak my_symbol

나는 그 질문을 본다 : 방법 -Weak-Minking-Work-with-GCC 작동하는 방법에 대해 논의합니다. 그러나 GCC가 필요하지 않도록이 작업을 수행하는 좋은 방법이 있습니까?

약한 연결과 #ifdef로 선언을 지키는 것의 차이점은 무엇입니까?

#ifndef my_weak_fn
    void my_weak_fn(){/* Do nothing */ return;}
#endif
도움이 되었습니까?

해결책

#pragma 정의상, ~ 아니다 가지고 다닐 수 있는.

링크 시간에 약한 연결이 이루어집니다 (놀랍게도 충분 함). 동일한 서명이있는 함수 (또는 모든 기호)가 다른 서명을 무시할 수 있습니다. 그것은 약한 것보다 강한 것이 선택 될 것이지만, 강한 것이 없다면 약한 것이 사용됩니다.

가드 포함 경비원은 링커가 아닌 컴파일러에 의해 수행되며 ~ 아니다 강한 사람이 없다면 약한 사람에게 폴백을 허용하십시오. 두 함수의 소스를 제어하면 동일한 동작을 시뮬레이션 할 수 있습니다 ( ifdef-하나를 위해, ifndef-다른 사람의 경우) 그러나 이것이 항상 그런 것은 아니며 이것은 두 가지 강력한 기능 중에서 더 많이 선택됩니다.

약한 연결은 자신의 떨어질 때와 같은 일을 할 수 있습니다. malloc()/free() 도서관을 제공하는 라이브러리와 연결하면서 디버깅 목적.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top