隐C++&引用;“东西”;(函数指针) < C++中的这种语法是什么?有人能给我指一下这个术语吗?这样我就可以看看我在课文中有没有发现什么
起初我以为这是一个原型,但后来隐C++&引用;“东西”;(函数指针) < C++中的这种语法是什么?有人能给我指一下这个术语吗?这样我就可以看看我在课文中有没有发现什么,c++,function,pointers,C++,Function,Pointers,起初我以为这是一个原型,但后来=和(*fn)把我甩了 以下是我的例子: void (*fn) (int&,int&) = x; 这是一个函数指针,指向接受两个int引用参数的函数,该函数不返回任何内容。函数指针被称为fn,并在x中被赋值。这是一个指向函数的指针,该函数对ints进行两次引用,并返回void,它看起来像是指向一个方法的函数指针,该方法采用两次整数引用,并且不返回任何内容。指针将命名为fn。您正在将其分配给x的地址,这很可能是一个与此描述匹配的函数 这声明并初始化函
=
和(*fn)
把我甩了
以下是我的例子:
void (*fn) (int&,int&) = x;
这是一个函数指针,指向接受两个
int
引用参数的函数,该函数不返回任何内容。函数指针被称为fn
,并在x
中被赋值。这是一个指向函数的指针,该函数对int
s进行两次引用,并返回void
,它看起来像是指向一个方法的函数指针,该方法采用两次整数引用,并且不返回任何内容。指针将命名为fn。您正在将其分配给x的地址,这很可能是一个与此描述匹配的函数 这声明并初始化函数指针
变量名为fn
,它指向具有以下签名的函数:
void pointedToFunction(int&, int&)
变量fn
初始化为x
中包含的值
可以使用以下语法调用指向函数:
int a;
int b;
(*fn)(a,b);
这相当于
int a;
int b;
pointedToFunction(a,b);
它是一个函数指针,指向以2个整数作为参数并返回void的函数。x必须是函数名。函数指针 ^好的,初学者参考资料。:-) 它可以重写为
typedef void (*T) (int&, int&);
T fn = x;
第二条语句很明显,它应该解决=x代码>问题。在第一个语句中,我们将T
作为类型void(*)(int&,int&)
的同义词,这意味着:
- 指向函数的指针(
(*…)
)
- 返回
void
- 取两个参数:
int&,int&
它是一个函数指针变量,初始化为=
右侧的内容
函数类型可以这样编写:
typedef void func_t(int&,int&);
函数指针的大小将不同于:
typedef func_t *fn_t;
使用这些定义,变量声明将更加清晰:
fn_t fn = ...;
Wikipedia页面上有一些关于这个主题的链接:实际上,它们是对整数的引用,而不是整数(不,我不是下一个投票人)谷歌的“左右规则”。您也可能对cdecl工具感兴趣。谢谢大家。我没有玩过函数指针,但现在我对函数指针有了更好的理解。你可以用它来获得一些帮助。