我们可以在另一个对象的定义中提供一个对象作为初始化器。它只是复制并将对象的值分配给另一个。
是否可以在另一个函数的定义中提供函数名作为初始值设定项?
C标准在哪里说是否允许?我没有找到它,所以我想这是可能的。
以下两个示例将导致语法错误:
#include <stdio.h>
int f(){};
int main()
{
int (g=f)();
int h() = f;
}
感谢。
答案 0 :(得分:4)
你可能想要一个函数指针(作为一个函数在这个上下文中没有用):
int (*h)() = f;
答案 1 :(得分:1)
没有。函数声明不能有初始值设定项。
如果要确保类型兼容性,可以使用函数typedef
。
typedef int f_tp(void);
f_tp f, h; //check f and h for compatibility with int (*)(void)
int f(){} //✓
//will get an error here because h was declared f_tp h == int h(void);
void h()
{
}