c语言定义函数指针和typedef简写

c语言定义函数指针和typedef简写

  二种方法来定义函数指针

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<Windows.h>
 4 
 5 int add(int a, int b)
 6 {
 7     return a + b;
 8 }
 9 
10 //void msg(char s[])
11 //void (*p)(char s[]) 函数指针的定义方法
12 //void (*)(char *s)   函数指针的类型
13 
14 void msg(char s[])
15 {
16     MessageBoxA(0,s,s,0);
17 }
18 
19 
20 void main()
21 {
22     //方法1
23     //定义函数指针的规则
24     //1.先把函数拿过来  int add(int a, int b) , add就是一个地址
25     //2.把函数名挖空    int (*p)(int a,int b);
26     int(*padd)(int a, int b); //函数指针
27     //3.赋值
28     padd = add;
29     printf("%d", padd(11, 19));//30
30 
31     //方法2.直接初始化
32     void(*pmsg)(char s[]) = msg; //定义函数指针并初始化
33     pmsg("心里的雨倾盆的下");
34 
35     getchar();
36 }

   通过typedef构建

 1 //使用typedef给函数指针类型一个别名
 2 //typedef没有定义新的类型,给已经有的类型起一个别名,减少输入
 3 typedef int(*PADD)(int a, int b); //*类型, PADD存储函数地址
 4 typedef void(*MEG)(char s[]);
 5 
 6 void main()
 7 {
 8     PADD padd1 = add; //创建函数指针
 9     printf("%d",padd1(11,23));
10     
11     MEG meg1 = msg;
12     meg1("心里的雨倾盆的下");
13 
14     getchar();
15 }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108909.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • js解压gzip_unzip解压命令

    js解压gzip_unzip解压命令//js解压gzipfunctionunzip(key){//解压//将二进制字符串转换为字符数组varcharData=key.split(”).map(function(x){returnx.charCodeAt(0);});//将数字数组转换成字节数组varbinData=newUint…

    2022年9月6日
  • GEC环保创业币区块浏览正式开放

    GEC环保创业币区块浏览正式开放

    2021年6月7日
  • 状态机编程_vivado状态机

    状态机编程_vivado状态机给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。输入格式第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。第二行包含 N 个不超过 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105,1≤k≤100输入样例1:3 22

    2022年8月8日
  • 权限漏洞:水平权限漏洞、垂直权限漏洞

    权限漏洞:水平权限漏洞、垂直权限漏洞水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。漏洞示例:XXX/getAddress?id=1如上,攻击者修改addressId即可得到他人的address信息。开发容易习惯性的在生成CRUD(增查改删)表单(或AJAX请求)的时候根据认证过的用…

    2022年6月29日
  • strstr函数头文件_c++ strstr函数的实现[通俗易懂]

    strstr函数头文件_c++ strstr函数的实现[通俗易懂]函数说明:包含文件:string.h函数名:strstr函数原型:externchar*strstr(char*str1,char*str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。返回值:返回该位置的指针,如找不到,返回空指针。#include”stdafx.h”#include#in…

    2022年6月25日
  • phpstorm激活码2021最新_在线激活

    (phpstorm激活码2021最新)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9A…

    2022年3月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号