メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

呼び出しの発生数

関数本体内の呼び出し回数

説明

このメトリクスは関数本体内での関数呼び出し数を示します。

このメトリクスには次のものが含まれます。

  • 到達不能コードでの呼び出し。

  • 標準ライブラリ関数の呼び出し。

  • コンストラクターとデストラクターの呼び出し。

このメトリクスは次のものを除外します。

  • 関数ポインターを介した呼び出し。

  • バーチャル関数の呼び出し。

  • assert の呼び出し。Polyspace®assert を関数ではなくマクロと見なします。

  • インラインされた関数。コンパイラは、既定のコンストラクターやデストラクターなど、特定の関数呼び出しをインライン化する可能性があります。

メトリクスに制限を適用するには、Polyspace を使用したコード複雑度メトリクスの計算を参照してください。コード メトリクス制限の違反を Bug Finder 欠陥として適用するには、ソフトウェア複雑度チェッカーを使用します。Polyspace チェッカーを使用してソフトウェアの複雑度を低減するを参照してください。

すべて展開する

int func1(void);
int func2(void);


int foo() {
    return (func1() + func1()*func1() + 2*func2());
}

この例では、foo 内での呼び出し発生数は 4 です。

#include<stdio.h>
int getVal(void);


void fillArraySize10(int *arr) {
    for(int i=0; i<10; i++)
        arr[i]=getVal();
}

int getVal(void) {
    int val;
    printf("Enter a value:");
    scanf("%d", &val);
    return val;
}

この例では、fillArraySize10 内での呼び出し発生数は 1 です。

#include <stdio.h>
int fibonacci(int);

void main() {
 int count;
 printf("How many numbers ?");
 scanf("%d",&count);
 fibonacci(count);
}

int fibonacci(int num)
{
   if ( num == 0 )
      return 0;
   else if ( num == 1 )
      return 1;
   else
      return ( fibonacci(num-1) + fibonacci(num-2) );
} 

この例では、fibonacci 内での呼び出し発生数は 2 です。

#include<iostream>
class A{
    public:
	A(){
		std::cout<<"Create A\n";
	}
	~A() = default;
	A(const A&)=default;
	A(A&&) = default;
	virtual void bar(){ std::cout<<"A";}
};
class B: public A{
    public:
	B() = default;
	 void bar() override {std::cout<<"B";}
};

void func(A& a){
	a.bar();
}

int main(){
	A obj;
	A obj2 = obj;
	B objB;
	func(obj);
	return 0;
}

この例では、main 内での呼び出し発生数は 3 です。

  1. A obj; 内のクラス A のコンストラクター。このユーザー定義コンストラクターは関数呼び出しとしてカウントされます。

  2. B objB; 内のクラス B のコンストラクター。基底クラス A のコンストラクターはユーザー定義であるため、B::B()=default として宣言されていても、B のコンストラクターは関数呼び出しとしてカウントされます。

  3. 関数 func の呼び出し。

クラス A は既定の、または暗黙的なコピー コンストラクターを使用しています。A obj2 = obj; 内でのコピー コンストラクターの呼び出しは、関数呼び出しとしてカウントされません。

メトリクス情報

グループ: 関数
頭字語: NCALLS
HIS メトリクス:いいえ