看不懂一种typedef的用法
clever101
领域专家: C/C++技术领域 2006-10-24 03:35:18 在一个c文件中有这样的代码:
typedef int (LookUpIdProcType)(char *IdName,long *Id);
extern "c" int MathExprEval(char *expr_ptr,MathValueType *mValue,LookUpIdProcType,LookUpValueProcType *LookUpValueProc);
我不是很理解typedef int (LookUpIdProcType)(char *IdName,long *Id);这一句。 我猜(LookUpIdProcType)(char *IdName,long *Id)是一个函数,int为它的返回值类型。下面int MathExprEval(char *expr_ptr,MathValueType *mValue,LookUpIdProcType,LookUpValueProcType *LookUpValueProc);就更让我费解了。照我的想法,函数名LookUpIdProcType居然成了类型?那么函数MathExprEval的执行顺序是怎样的呢?还有如果(LookUpIdProcType)(char *IdName,long *Id)是一个函数,但是我根本找不到它的实现代码。我想到的可能是因为它处在最底层,为了抽象化,其实现是由其上层的和这个函数具备相同类型、相同个数的参数及返回值的函数来实现的。 请大虾们详细解释一下。