#include <cmath>
#include <iostream>
using namespace std;
typedef double (*pf)(double);
void main(){
 pf=abs;
}
ompiling...
Cpp1.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\lll\Cpp1.cpp(10) :
error C2513: 'double(__cdecl *)(double)':no variable declared before'='
Error executing cl.exe.
我该怎么办

解决方案 »

  1.   

    typedef double (*pf)(double)只是声明而已,并没有定义,要写成:pf pfnMyFunc;
    pfnMyFunc=(pf)abc;
    pfnMyFunc(0.2);
      

  2.   

    pf是类型,你没有定义pf类型的变量啊。另外,类型不匹配啊。应该是typedef double (*pf)(double); //pf本身是个类型
    void main()
    {
      pf pff; 
      pff = fabs; //不是abs
    }或者这样写:
    double (*pf)(double); //pf本身已经是变量了
    void main()
    {
      pf = fabs; //不是abs
    }