没有typedef的函数指针

Dav*_*rle 7 c c++ typedef function-pointers syntactic-sugar

是否可以在不使用typedef的情况下将prepreious声明的函数类型用作函数指针?

功能声明:

int myfunc(float);
Run Code Online (Sandbox Code Playgroud)

通过某种语法将函数声明用作函数指针

myfunc* ptrWithSameTypeAsMyFunc = 0;
Run Code Online (Sandbox Code Playgroud)

Ant*_*ams 21

不符合2003标准.是的,即将推出的C++ 0x标准和MSVC 2010以及g ++ 4.5:

decltype(myfunc)* ptrWithSameTypeAsMyFunc = 0;
Run Code Online (Sandbox Code Playgroud)


Tyl*_*nry 6

是的,可以声明一个没有typedef的函数指针,但不能使用函数名来做到这一点.

通常使用typedef,因为声明函数指针的语法有点巴洛克式.但是,typedef不是必需的.你可以写:

int (*ptr)(float); 
Run Code Online (Sandbox Code Playgroud)

声明ptr为函数指针指向函数获取float和返回int- 不涉及typedef.但同样,没有语法允许您使用该名称myfunc来执行此操作.