exponenta event banner

Статическая незакрытая функция

Функция со статической областью не вызвана в файле

Описание

Этот дефект возникает при 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.

Коррекция - функция вызова не реже одного раза

Одной из возможных корректировок является вызов 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
Воздействие: Низкий
CWE ID: 561
Представлен в R2013b