0

我有以下弱链接声明:

extern __attribute__((visibility ("default"))) Type* const symbolName __attribute__((weak_import));

问题是,符号可能会也可能不会被定义,具体取决于操作系统。

所以,当我使用它时func(symbolName);,我会收到信号 11 崩溃,因为我正在尝试取消对 null 的引用。我可以问if(&symbolName != NULL) { func(symbolName); },但这需要使用此符号的每个人都记得问过这个问题,这不是最佳选择。

我正在寻找一些神奇的魔法来有条件地修改或重新声明这个符号,只有在不可用的情况下,才有一些我func可以使用的默认值。

我知道这是一个丑陋的解决方案,不推荐。此时,我只想知道有没有办法做到这一点,无论多么丑陋或低级。

4

0 回答 0