C ++中的这种语法是什么?有人能指出我的技术术语,所以我可以看到我的文字中是否有任何内容?
起初我以为这是原型,但=
和(*fn)
让我失望......
以下是我的例子:
void (*fn) (int&,int&) = x;
答案 0 :(得分:14)
可以改写为
typedef void (*T) (int&, int&);
T fn = x;
第二个陈述是显而易见的,它应该解决= x;
个问题。在第一个语句中,我们将T
作为类型void(*)(int&, int&)
的同义词,这意味着:
(*…)
)void
int&, int&
。答案 1 :(得分:9)
这是一个带有两个int
引用参数的函数的函数指针,它不返回任何内容。函数指针名为fn
,并在x
中分配值。
答案 2 :(得分:2)
这声明并初始化一个函数指针。
变量的名称是fn
,它指向具有以下签名的函数:
void pointedToFunction(int&, int&)
变量fn
初始化为x
中包含的值。
可以使用以下语法调用指向函数:
int a;
int b;
(*fn)(a,b);
这相当于
int a;
int b;
pointedToFunction(a,b);
答案 3 :(得分:2)
答案 4 :(得分:0)
这是一个指向函数的指针,该函数对int
进行两次引用并返回void
。
答案 5 :(得分:0)
这似乎是一个函数指针,它指向一个接受两个整数引用但不返回任何内容的方法。指针将命名为fn。您将它分配给x的地址,希望这是一个与此描述匹配的函数。
答案 6 :(得分:0)
它是一个指向函数的函数指针,该函数将2个整数作为参数并返回void。 x必须是函数名。
答案 7 :(得分:0)
这是一个函数指针变量,它被初始化为=
右边的东西。
函数类型可以这样写:
typedef void func_t(int&,int&);
函数指针比:
typedef func_t *fn_t;
通过这些定义,变量声明将更加清晰:
fn_t fn = ...;
答案 8 :(得分:0)
维基百科页面,其中包含一些关于该主题的链接:http://en.wikipedia.org/wiki/Function_pointer