为什么将函数指针设置为指针和指针指针?

时间:2013-04-22 07:17:04

标签: c++ c pointers function-pointers

我被指针逻辑困住了一次。 以下代码使用函数typedef tOutFunction。 它为此函数指针和set方法定义了一个全局变量。

为什么

SetOutFunction(OutFunction);

SetOutFunction(&OutFunction);
这两个都有效吗?如何在这个地方进行自动转换。或者其中一个是错的,它是偶然的吗?

#include <iostream>

typedef int (*tOutFunction)(const char*);

int OutFunction(const char* out)
{
  std::cout << "OutFunction:" << out << "\n";
  return 10;
}

tOutFunction out__ = 0;

void SetOutFunction(tOutFunction outFunc)
{
  out__ = outFunc;
}

int main()
{
  SetOutFunction(OutFunction);
  std::cout << out__("Without Ref") << "\n";

  SetOutFunction(&OutFunction);
  std::cout << out__("With Ref") << "\n";

  return 0;
}

此处也尝试过: http://codepad.org/yfxj2QAo

0 个答案:

没有答案