我在项目中使用 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 :(得分:2)
检查格式模式以及sprintf
和类似函数的参数是否匹配最近是否已添加到XCode 4.4的编译器中(如果我没有记错的话)。这是一个有价值的检查,突出了代码中的问题,这些问题在早期版本中未被注意到。
就我而言,编译器总是正确的。因此,您最好修复格式模式或转换相应的参数。
如果您发布特定代码,我们可以提供更具体的建议。