相关疑难解决方法(0)

如何检查C/C++中是否存在该函数

在我的代码中的某些情况,我最终只在定义了该函数时调用该函数,否则我不应该.我怎样才能实现这一目标?

like:
if (function 'sum' exists ) then invoke sum ()
Run Code Online (Sandbox Code Playgroud)

可能是另一种方式来问这个问题是:如何确定函数是否在运行时定义,如果是,则调用.

c c++ linux

22
推荐指数
7
解决办法
4万
查看次数

检查C风格函数是否存在"MyMethodName()"类型?

此问题适用于iOS版本兼容性.

我知道如果函数存在,如果它是使用respondsToSelector的典型Objective-C样式方法,则该函数是否存在.即对于如下方法:

- (void) someMethod:(NSInteger)someParameter;
Run Code Online (Sandbox Code Playgroud)

您可以使用:

if ([self respondsToSelector:@selector(someMethod:someParameter)]) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

但是C风格的功能呢?如何检查是否存在如下函数:

void CStyleFunctionName(FoundationTypeRef parameter);
Run Code Online (Sandbox Code Playgroud)

谢谢!

c ios

7
推荐指数
2
解决办法
3655
查看次数

#ifdef(或其他预处理器指令)是否适用于函数声明(以测试函数存在性)?

为什么以下代码不能按预期工作?

void foobar(int);

#ifndef foobar
  printf("foobar exists");
#endif
Run Code Online (Sandbox Code Playgroud)

总是打印信息; 它显然无法检测到一个函数作为一个实体的存在.(这是一个过载的问题吗?)

为什么不能#ifdef(或其变体)检测函数声明?声明应该在预处理时提供,所以它应该有效,不应该吗?如果没有,是否有替代方案或解决方法?

c declaration c-preprocessor

5
推荐指数
1
解决办法
9040
查看次数

标签 统计

c ×3

c++ ×1

c-preprocessor ×1

declaration ×1

ios ×1

linux ×1