関数の数を数える関数について


小倉  2004-12-26 00:27:09  No: 55809

宣言文と実際の式のどちらも含むとして、
使用している関数(名)を頻度順に並べたいのですけどどの様な関数を使えばいいのか教えてください。
例として、入力 
int combination(int n, int m){
  if(m==0){return 1;}
  else if(n==m){return 1;}
  return combination(n-1,m-1)+combination(n-1,m);
}
main(){
  int n=5,m=2;
  printf("%dC%d = %d\n",n,m,combination(n,m));
}  

としたら、出力が 
combination: 4
main: 1
printf: 1

となるように関数の頻度を計測したいのです。よろしくお願いします。


シャノン  2004-12-26 01:51:02  No: 55810

> どの様な関数を使えばいいのか教えてください

そういうことを一発でやる関数はありません。自作してください。
自作するためにどんな関数を使うか、ということなら、ファイルアクセス関数(fopen、fclose、fgets など)と、文字列処理関数(具体的には何だろう…strtok なんかでやろうとすると気が遠くなりそうだ)が主でしょう。
lex / yacc でも使わない限りは。


(noname)  2004-12-26 17:55:03  No: 55811

( ´ー`)y-~~ よう。師走は忙しいな。へへへ。

「プロファイリング」っつー作業の事なら,
Googleで「プロファイル」「プロファイラ」で調べれ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加