指针【3-1-25】函数指针

来源:互联网 发布:html实体编码转换 js 编辑:程序博客网 时间:2024/06/12 23:24

练习1:函数指针,直接调用和间接调用,用一函数来引用一指针,如何通过一地址调用一函数,最经典的用途是做挂

#define _CRT_SECURE_NO_WARNINGS   //去掉安全检查
#include<stdio.h>//标准的输入输出文件
#include<stdlib.h>//使用system函数
#include<Windows.h>
#include<time.h>
#include<string.h>
//直接调用的定义你只有在原代码里才能调用,加入我没有你的原代码怎么调用,就要用到间接调用,间接调用就是加入创建一个msg这样一个函数指针
void msg()
{
//窄字符,需要A
MessageBoxA(0,"你好","出来",0);
}
int add(int a,int b)
{
return a + b;
}
void main2()
{
msg();//直接调用,你只有在原代码里才能调用
printf("%d",add(1,10));//直接调用,如何调用带返回值的
//接下来我们分析一下函数指针,函数名就是一内存地址
printf("\n%x,%x",msg,add);


//举例:如何引用msg
//间接调用,函数指针一般用法,如何引用 msg和add
void msg();//有一秘诀,把函数名挖空,输入(*p),这就是一个函数指针,换成void (*p)();
void(*p)() = msg;//要初始化它,可以让它,也就是等于msg地址
p();//可以调用它


//举例:如何引用add
//int add(int a,int b)
//int (*px)(int a,int b)//px防止和上面直接调用里面的p重名
//printf("%d",px(1,10));
system("pause");
}

0 0
原创粉丝点击