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)
是的,可以声明一个没有typedef的函数指针,但不能使用函数名来做到这一点.
通常使用typedef,因为声明函数指针的语法有点巴洛克式.但是,typedef不是必需的.你可以写:
int (*ptr)(float);
Run Code Online (Sandbox Code Playgroud)
声明ptr为函数指针指向函数获取float和返回int- 不涉及typedef.但同样,没有语法允许您使用该名称myfunc来执行此操作.