メインコンテンツ

呼び出されていない静的関数

ファイルで呼び出されない静的スコープをもつ関数

説明

この欠陥は、関数 static が、それが定義されたファイル内で呼び出されなかった場合に発生します。

リスク

呼び出されていない関数は多くの場合、レガシ コードに起因し、不要な保守の原因になります。

修正方法

呼び出されることを意図していない関数は削除します。デバッグ専用の関数の場合は、デバッグ マクロで関数定義をラップします。

以下の修正例を参照してください。

問題を修正しない場合は、改めてレビューされないように結果またはコードにコメントを追加します。詳細は、以下を参照してください。

すべて展開する

次のコードをファイル Initialize_Value.c に保存します。

#include <stdlib.h>
#include <stdio.h>

static int Initialize(void) 
/* Defect: Function not called */
  {
   int input;
   printf("Enter an integer:");
   scanf("%d",&input);
   return(input);
  }
  
 void main()
  {
   int num;

   num=0;

   printf("The value of num is %d",num);
  }

static 関数 Initialize は、ファイル Initialize_Value.c 内で呼び出されていません。

修正 — 関数を少なくとも一度呼び出す

1 つの修正方法として、Initialize をファイル Initialize_Value.c 内で少なくとも一度呼び出すことができます。

#include <stdlib.h>
#include <stdio.h>

static int Initialize(void)
  {
   int input;
   printf("Enter an integer:");
   scanf("%d",&input);
   return(input);
  }

 void main()
  {
   int num;

   /* Fix: Call static function Initialize */
   num=Initialize();
    
   printf("The value of num is %d",num);
  }

結果情報

グループ: データ フロー
言語: C | C++
既定値: オフ
コマンド ライン構文: UNCALLED_FUNC
影響度: Low

バージョン履歴

R2013b で導入