| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2051 人关注过本帖
标题:如何统计子程序的调用次数
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:5 
如何统计子程序的调用次数
int add(int a,int b)
{
    return a+b;
}

int sub(int a,int b)
{
    return a-b;
}

int main()
{
    add(3,4);
    return 0;
}比如上面的程序,要想统计子程序add(),sub()被使用了多少次?应该怎么实现呢?
我想首先,应该识别这些子程序 add(),sub(),就像utraledit软件把识别的子程序在右侧显示
其次才是对主程序的流程进行分析,但是还不知道具体应该怎么操作,希望大家谈谈自己想法!
对于第一步:本来想通过函数定义体有 一对大阔号来识别子程序,但是想想程序中的循环、分支结构等也常常有这样的括号

对于第二步:可以通过第一步得到的子程序名进行匹配查询,不过这个效率好像有待改善!
搜索更多相关主题的帖子: 统计 子程序 调用次数 
2008-11-28 16:23
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
写一个static count=0;
然后++count;
可以吗?
2008-11-28 16:26
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
你怎么判别子函数名??

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-11-28 19:42
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
不知道是不是这个意思?
第一个: 可以在 全局放两个静态变量
程序代码:
static int _add=0;
static int _sub=0;

int add(int a,int b)
{;
    _add++;
    return a+b;
}

int sub(int a,int b)
{
    _sub++;
    return a-b;
}


int main()
{
   cout<<add(3,4)<<add(1,2)<<add(43,23)<<endl;
   cout<<_add<<endl;
   getchar();
   return 0;
}

第二个: 可以用类来封装
程序代码:
class newcla
{
  public:    
  static int add(int a,int b)

 {
    newcla::_add++;
    return a+b;

 }
  static int sub(int a,int b)

 {
    newcla::_sub++;
    return a-b;

 }       

 static int getadd(){return newcla::_add;}

 static int getsub(){return newcla::_sub;}

 private:

 static int _add;

 static int _sub;
};
int newcla::_add=0;
int newcla::_sub=0;

int add(int a,int b)
{
   return newcla::add(a,b);   
}

int add()
{
  return newcla::getadd();    
}

int main()
{  
  cout<<add(3,4)<<add(1,2)<<add(23,54)<<endl;
  cout<<add()<<endl;
  getchar();
  return 0;    
}
2008-11-28 20:52
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 第4楼 newyj 的帖子
哦 ,你没有明白我的意思
我使不想对这个源代码进行修改‘而另外编写一个代码实现这个统计功能
不过还是万分感谢您的热情参与

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-11-28 21:08
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
明白你的意思了,你可以阅读一些跟编译原理相关的书籍。
不过个人认为这样做的意义不大。
2008-11-29 02:44
快速回复:如何统计子程序的调用次数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030180 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved