说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何理解以下typedef语句

编辑:说三道四文库 发布时间:2018-06-24 12:09
HTML文档下载 WORD文档下载 PDF文档下载
在*.h中
typedef int (* MAXINT)(int,int)
在*.c中
MAXINT intmax;

请理解的回答
声明一个具有两个int型参数的函数指针
例:
int max(int a, int b)
{
   return a > b ?a : b;
}

void main()
{
    MAXINT intmax;
    intmax = max;
    int c = intmax(1, 2);
    cout << c << endl; //c=2
}
函数指针
在*.h中
typedef int (* MAXINT)(int,int);//你这里少了一个分号吧
在*.c中
MAXINT intmax;
typedef是用来定义一个新类型的。
如typedef int INTEGER;
INTEGER a;相当于int a;
对于复杂的类型,为了方便在源程序中定义,常常用typedef给它取一个新名字。
如:
int a[10];
我们可以
typedef int Array10[10];
则Array10 a,b,c;<=>int a[10],b[10],c[10];
在谭浩强的书上讲了具体的做法:
1。先按常规定义方法写出定义来
  int a[10];
2.再在前面加上typedef
  typedef int a[10];
3.用新类型名取代变量名
  typedef int Array10[10];//Array10表示10个int型元素组成的数组
4。定义时可以用新的类型名来定义‘变量’了,该变量是什么类型的?知道了吧!
你可以用上面的方法分析,得到如下结论。  
在*.c中
MAXINI intmax;<==>int (*intmax)(int,int);
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘