如何使用宏进行未定义的引用

时间:2019-08-26 10:14:09

标签: c gcc macros linker undefined

我有C代码可以通过GCC与.a文件静态编译。

在C代码中,我使用在.a文件中实现的功能。

我该如何使用(在c代码中)使用的宏,例如是否在.a文件中定义了此函数,例如,如果函数a未定义,我想使用函数b

# IF_A_UNDEFINED
b()
#ELSE
a()
#ENDIF

那可以通过吗?

1 个答案:

答案 0 :(得分:0)

3个答案:不,不,也许(可能不是您要找的东西)

简短回答,不。

更长的答案,但是TLDR,仍然没有。在大多数情况下,编译时的错误不能忽略。当然,不能忽略使用未声明参数的情况,并且,如果要查找不存在的函数,那么,没有声明函数名就无法引用它。

最后,您可以这样声明函数: void functionA() __attribute__((weak, alias("functionB")));

void functionB() { printf"Hello World\n"; }