简单的函数指针例子

  1. #include <stdio.h>
  2. typedef void (*Bottle_type)(int i);//我们在这里设计了一个瓶子的模型,这个瓶子可不简单啊,可以装任何起始函数的地址呢!下面我们就拿它去制造瓶子


  3. void vinegar(int i)//醋
  4. {
  5.         printf("%d: Now, I am vinegar, not bottle!/n",i);
  6. }

  7. void soy(int i)//酱油
  8. {
  9.         printf("%d: Now, I am soy, not bottle and vinegar! /n",i);
  10. }

  11. int main()
  12. {
  13.           Bottle_type bottle;//按照Bottle_type这个模型,制造了一个瓶子bottle.

  14.           bottle = vinegar;//现在往瓶里加醋,你还会叫它瓶子吗?如果是的话,我不信,你去超市买醋,你会指着醋对售货小姐说,我要买这个瓶子^-^!(其实,bottle里装的就是vinegar的址址)

  15.           (*bottle)(1);//因为bottle里面是醋,所以倒出来的也是醋啦

  16.           bottle = soy;//现在不加醋了,太酸!加酱油吧,此时,你还会叫它瓶子或醋吗?它叫酱油了(现在bottle里装的就是soy的地址)

  17.           (*bottle)(2);//bottle是酱油了,所以倒出来就是酱油啦
  18.         return 0;
  19. }


liulife@liulife:~/test$ gcc -o test_func_p test_func_p.c

liulife@liulife:~/test$ ls
test_func_p test_func_p.c

liulife@liulife:~/test$ ./test_func_p
1 : Now, I am vinegar, not bottle!
2 : Now, I am soy, not bottle and vinegar!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值