C snprintf的隐式声明
我注意到,当我编译此文件时,它发出了以下警告:C snprintf的隐式声明,c,c99,printf,c89,C,C99,Printf,C89,我注意到,当我编译此文件时,它发出了以下警告: src/iniparser.c:244:5: warning: implicit declaration of function ‘snprintf’ [-Wimplicit-function-declaration] snprintf(keym, secsize, "%s:", s); 解决方案应该是添加: #include <stdio.h> 如果我将此更改为: CFLAGS += -fPIC -Wall -st
src/iniparser.c:244:5: warning: implicit declaration of function ‘snprintf’ [-Wimplicit-function-declaration]
snprintf(keym, secsize, "%s:", s);
解决方案应该是添加:
#include <stdio.h>
如果我将此更改为:
CFLAGS += -fPIC -Wall -std=c99 -pedantic
它编译时没有发出警告。这是否意味着C90标准不包括
snprintf
?有人能给我解释一下这种行为吗 snprintf
仅在C99中指定,与C90中的sprintf
不同。有关更多信息,请参见mansprintf
不,这意味着C90标准不包括snprintf
。您的测试没有提到sprintf,因为它没有被使用。@Kaz,我是说snprintf。我打错了。还要注意snprintf
和宽字符swprintf
具有不同的返回值语义!
CFLAGS += -fPIC -Wall -std=c99 -pedantic