我可以重新定义一个函数或检查它是否存在? [英] Can I re-define a function or check if it exists?

查看:118
本文介绍了我可以重新定义一个函数或检查它是否存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于(重新)定义函数的问题。我的目标是有一个剧本,我可以选择定义一个函数或没有。
像这样的:

I have a question about (re-)defining functions. My goal is to have a script where I can choose to define a function or not. Like this:

void func(){}

int main(){
   if (func)func();
}

和无功能,只需:

int main(){
   if (func)func();
}

任何人的想法?

推荐答案

您可以使用GCC其脆弱的函数属性扩展做到这一点:

You can do this in GCC using its weak function attribute extension:

void func() __attribute__((weak)); // weak declaration must always be present

int main() {
  if (func) func();
  // ...
}

// optional definition:
void func() { ... }

这个工程,即使 FUNC()在另一个.c文件或库中定义。

This works even if func() is defined in another .c file or a library.

这篇关于我可以重新定义一个函数或检查它是否存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆