c语言真的是在下用过的最好的语言了,想一想,用函数指针不就相当于利用函数指针来指定汇编下的cs段寄存器的值嘛!
用汇编其实对应的也可以认为是jmp到一个cs段标号下
好了用汇编其实写起来真的有点麻烦,现在用c来写相对更简单一点。
函数指针其存储结构如下
返回数据类型 *函数指针 以及参数列表
其对应下面的程序就是
int (*add1)(int,int)=add;
使用时
指定其参数列表和返回的值赋予的变量即可使用使用的例子如下
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
int add(int num1,int num2);
int main(){
int x,y,k,addp;
int (*add1)(int,int)=add;
x=1;
y=2;
addp=(*add1)(x,y);
printf("%d\n",addp);
k=addp;
printf("%d\n",k);
return 0;
}
int add(int num1,int num2){
return num1+num2;
}
输出结果如下:
3
3