目录
一.typedef
二.函数和指针
一.typedef
typedef是一种高级数据特性,利用typedef可以为某一类型自定义名称。typedef创建的符号名只受限于类型
typedef unsigned char BYTE;
BYTE x 这里的BYTE就相当于unsigned char x
typedef unsigned char *BYTE;
BYTE x,y 相当于unsigned char * x,*y;
typedef在日常的应用中非常多,它对于简化程序有很大的帮助,我们会在后面举例到
二.函数和指针
通常,函数指针常用作另一个函数的参数,告诉该函数要使用哪一个函数。
声明一个函数指针时,必须声明指针指向的函数类型
void(*pf)(char *)
pf是一个指向函数的指针。因此,(*pf)是一个参数列表为(char *),返回类型为void的函数。
Void ToUpper(char *);
Int round(double);
Void (*pf)(char *);
pf = ToUpper; //有效,ToUpper是该类型函数的地址 Pf = ToUpper();是错误的,因为ToUpper()的返回值是void
pf =round; //无效,round与指针类型不匹配
既可以用数据指针访问数据,也可以用函数指针访问函数
void ToUpper(char *);
void (*pf)(char *);
char mis[] = "Nina Metier";
pf = ToUpper;
(*pf)(mis); //也可以pf(mis);
第一种方式:(*pf)(mis);
由于pf指向ToUpper函数,那么*pf就相当于ToUpper函数,那么表达式(*pf)(mis)和ToUpper(mis)相同
第二种方式:pf(mis);
由于函数名是指针,那么指针和函数名可以互换使用,所以pf(mis)和ToUpper(mis)相同
作为函数的参数是数据指针是最常见的用法之一
Void show(void (*pf)(char *),char * str);
fp是函数指针,str是一个数据指针。
下面我们来讲解一个例子。
这个例子中,我们使函数指针pf指向将字符转换为大写字符的函数TOUPPER进行使用。
好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈