【发布时间】:2018-02-14 04:07:15
【问题描述】:
我正在尝试理解函数指针的所有这些巨大的概念......
是否可以用未声明的函数来初始化函数指针?
例如,函数指针的简单用法是:
void f()
{
printf("Hello world!");
}
//Somewhere in the program
void (*foo)();
foo = &f;
有没有办法跳过 f 的声明?类似的东西:
void (*foo)();
foo = { printf("Hello world!"); }
【问题讨论】:
-
在
C,没有。C++有 lambdas 的概念,适合你想要做的事情。 -
在 C 语言中,您需要将其设为命名函数(可能是
static,除非您打算从其他编译单元重用它)。 -
在 C(以及 C++)中,您必须在使用之前声明一个名称。
-
简答:C 不,C++ 是。
-
C# 也支持这个。
标签: c function function-pointers