CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请问如何返回一个函数的地址?

楼主ducktail()2005-08-04 13:47:29 在 C/C++ / C++ 语言 提问

比如:  
   
  void   func()  
  {  
  }  
     
  在main()里想得到func()的地址该怎么办?  
  问题点数:20、回复次数:11Top

1 楼MadLee(风里麦笛)回复于 2005-08-04 13:55:23 得分 4

extern   void   func()  
  {   }  
   
  main()  
  {  
          void   (*p)()   =   func;  
          p();  
  }Top

2 楼junguo(junguo)回复于 2005-08-04 13:56:21 得分 4

函数指针!  
   
  #include   <iostream>  
  using   namespace   std;  
   
  void   test()  
  {  
  cout   <<   "test"   <<   endl;  
  }  
   
  void   main()  
  {  
  void   (*f)();  
   
  f   =   test;  
   
  f();  
   
  system("pause");  
   
  }Top

3 楼ducktail()回复于 2005-08-04 14:09:08 得分 0

谢谢楼上各位!Top

4 楼temujen(耳朵)回复于 2005-08-04 14:14:22 得分 3

cout<<func<<endl;  
  这样就可以打印func()的内存地址  
  也可以定义一个指针,把func()的内存地址赋给指针保存起来  
  void   (*p)();  
  p=func;  
  Top

5 楼ducktail()回复于 2005-08-04 15:44:13 得分 0

cout<<func<<endl;输出的结果是1  
   
  提示信息如下:  
  [Warning]   the   address   of   `int   func1()',   will   always   evaluate   as   `true'Top

6 楼zhouqingyuan(浪帆)回复于 2005-08-04 17:06:02 得分 2

void   Test()  
  {  
  }  
  int   main()  
  {  
  cout   <<   &Test   <<endl;  
  return   0;  
  }  
   
  这样是可以得到的。Top

7 楼watermarking(谦虚谨慎)回复于 2005-08-04 18:42:06 得分 3

By   using   pointer   to   function.In   addition,using   &   to   get   the   address   of   a   function   is   optional.Top

8 楼yztommyhc(老六)回复于 2005-08-04 18:48:30 得分 0

我听老师说函数名就是它的指针,  
  可看  
  cout<<func<<endl;输出的结果是1  
   
  提示信息如下:  
  [Warning]   the   address   of   `int   func1()',   will   always   evaluate   as   `true'.  
  好象不对啊.有人可以帮忙解释吗??Top

9 楼foochow(无聊,灌水......)回复于 2005-08-04 19:36:51 得分 4

返回函数指针??  
  看看这个...  
  void(*signal(int   hum,void(*func)(int)))(int);  
  返回一个函数指针void(*)(int)Top

10 楼ducktail()回复于 2005-08-04 19:58:43 得分 0

to   foochow:我的意思是说得到func1()的地址。  
   
  在VC.net中,cout<<func<<endl;的结果是对的,但在dev-c++中输出的结果是1。  
  用三楼的方法在dev-c++是有效的。Top

11 楼foochow(无聊,灌水......)回复于 2005-08-04 20:04:18 得分 0

输出函数名和函数指针都是对的.  
  Top

相关问题

  • 函数返回地址在内存中如何排列的问题
  • 函数返回地址问题
  • 如何获取函数地址
  • 重载函数如何返回?
  • 函数如何返回多维数组
  • 如何只取函数的返回值
  • 函数如何返回数组?
  • 请问函数如何返回数组?
  • 函数如何返回字符串?
  • 如何返回函数的值?

关键词

  • 函数
  • 地址
  • func
  • main

得分解答快速导航

  • 帖主:ducktail
  • MadLee
  • junguo
  • temujen
  • zhouqingyuan
  • watermarking
  • foochow

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo