我正在用C(gcc)编写一些模块来调用模块外的函数。出于测试目的,我实现了只打印其参数的虚函数。然后其他人将实现真正的功能。现在我将它们作为弱符号实现,以便在链接时可以通过“真实”函数覆盖它们。 当我的弱符号被链接时,有没有办法可以看到警告?(比如编译时的#warning)我想知道什么时候没有实现特定的功能而且虚拟的是连接的代替。
我已经知道了替代方案 - 在我的模块初始化期间传递一个函数指针结构,并在我的模块中使用函数指针,使用大量#ifdefs或修改构建过程只链接一个版本。
答案 0 :(得分:0)
你可以使用一些#pragma message
gcc指令:
/* dummy foo function is just for testing purpose, so is only defined in debug version. */
#ifdef _DEBUG
/* foo is your dummy function for testing */
int foo()
{
#pragma message "Warning: using dummy version of foo function"
return 0;
}
#endif