C语言是面向过程的语言,面向过程语言对于大型工程来说比较吃力,编写和维护都比较麻烦.但是所有操作系统却都是使用C语言编写的,这好像有些不对!
其实C语言也可以用面向对象的思想来编写代码的.最像类的应该就是C语言的结构体了,那么问题又来了,结构体只能存变量,面向对象中函数是不可缺少的.结构体中无法存储函数.为了解决这个问题,咱们主角登场!!函数指针!
函数指针,作为一个指针,自然是可以放到结构体中的,而且它指向的是一个函数,所以我们可以直接通过函数指针来找到我们要使用的函数,方便快捷!C语言华丽的转身变成了面向对象了!
那么让我们看看函数指针的面目:
int (*sh)(char *str,...);
sh=printf;
sh("hello
");
这个就是函数指针,是指向printf函数的指针,最前面的int是函数的返回值类型,中间的(*sh)表明这个是一个指针,(char*str,...)这个是函数的参数,返回值和参数必须和被指向的函数一样.