휴대용이 약한 연결성은 얼마나됩니까? #Pragma 약한 my_symbol
-
05-07-2019 - |
문제
휴대용이 약한 연결성은 얼마나됩니까?
#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()
도서관을 제공하는 라이브러리와 연결하면서 디버깅 목적.
제휴하지 않습니다 StackOverflow