Как обработать предупреждение Xcode "нет предыдущего прототипа для функции ..."? - PullRequest
41 голосов
/ 17 августа 2011

Это предупреждение появляется в некоторых сторонних библиотеках.

Есть ли способ справиться с этим без изменения кода (например, игнорировать предупреждение)?

Если мне нужно изменить код, чтобы исправить это, как мне это сделать?

Вот один из блоков кода, который вызывает предупреждение:

BOOL FBIsDeviceIPad() {
 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
   return YES;
  }
 #endif
  return NO;
}

Ответы [ 3 ]

79 голосов
/ 19 октября 2011

Обычно с такими предупреждениями вы можете просто определить прототип функции в верхней части вашего файла, например:

BOOL FBIsDeviceIPad();

Но в C - метод, в котором ничего не заключено в фигурные скобкито есть () фактически подразумевает, что существует произвольное количество параметров.Вместо этого определение должно стать (void) для обозначения нет параметров:

BOOL FBIsDeviceIPad(void);

...

BOOL FBIsDeviceIPad(void) {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
   return YES;
  }
#endif
  return NO;
}
29 голосов
/ 17 августа 2011

В Xcode4 перейдите в настройки сборки вашего проекта. Ищите «прототип». Должна быть опция под названием «Прототипы отсутствующих функций»; отключи это. Вы также можете сделать это для конкретной цели (ей).

1 голос
/ 25 сентября 2012

Нет предупреждений, если такая функция определена как встроенная.

Этого может быть достаточно, если ваша функция оптимизирована для встроенного использования. http://msdn.microsoft.com/en-us/library/1w2887zk.aspx

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