Функция определена, но не используется в C - PullRequest
0 голосов
/ 12 мая 2010

У меня есть следующий код:

static __inline__ LIST list_List(POINTER P)
{
  return list_Cons(P,list_Nil());
 }

После компиляции я получил следующее предупреждение:

inlining is unlikely but function size may grow

Я удалил inline и изменил на следующее:

static  LIST list_List(POINTER P)
{
  return list_Cons(P,list_Nil());
 }

Теперь я получаю следующее предупреждение:

list_List is defined but not used.

Я не получал выше предупреждение «функция определена, но не используется» перед удалением встроенный . Я получил предупреждение только после удаления inline . На самом деле функция используется. Когда я комментирую вышеупомянутую функцию, я получаю следующую ошибку:

 In function 
  (.text+0x148b): undefined reference to `list_List'
  In function `list_CopyWithElement':

Может кто-нибудь предложить мне, как убрать это предупреждение?

1 Ответ

2 голосов
/ 12 мая 2010

«статический» означает, что функция может использоваться только в пределах области текущего модуля компиляции (исходный файл, в основном, если вы не делаете странные вещи с #include).

Таким образом, компилятор предупреждает вас, что вы объявили функцию, которую нельзя использовать вне текущего исходного файла, но которая (в настоящее время) также не используется в этом исходном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...