Как разрешить конфликтующие типы для ‘sprintf’?

я использую stdio.h файл в моем проекте.

когда время компиляции из Xcode я использовал

 Comipler for C/C++/Objective-C: LLVM GCC 4.2

Во время компиляции Конфликтующие типы для ‘sprintf’ ошибка. Это нормально работает в Mac OS 10.6.8 & Xcode 3.2.3 но в Mac OS 10.7.4 & Xcode 4.5 получает ошибку? Помогите мне, пожалуйста?

это код в Mac OS X 10.7.4

 __BEGIN_DECLS
int     fseeko(FILE *, off_t, int);
off_t   ftello(FILE *);
__END_DECLS
#endif /* __DARWIN_C_LEVEL >= 200112L */

#if __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus)
__BEGIN_DECLS
int     snprintf(char * __restrict, size_t, const char * __restrict, ...) __printflike(3,   4);
int     vfscanf(FILE * __restrict, const char * __restrict, va_list) __scanflike(2, 0);
int  vscanf(const char * __restrict, va_list) __scanflike(1, 0);
int  vsnprintf(char * __restrict, size_t, const char * __restrict, va_list) __printflike(3, 0);
int  vsscanf(const char * __restrict, const char * __restrict, va_list) __scanflike(2, 0);
__END_DECLS
#endif /* __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) */

0

Решение

Проверка, является ли формат шаблона и аргументов sprintf и аналогичные функции соответствия были недавно добавлены в компиляторы XCode 4.4 (если я не ошибаюсь). Это ценная проверка, которая выявляет проблемы в вашем коде, которые остались незамеченными в более ранней версии.

В моем случае компилятор всегда был прав. Поэтому вам лучше исправить шаблон формата или преобразовать соответствующий аргумент.

Если вы публикуете конкретный код, мы можем дать вам более конкретный совет.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]