Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C snprintf的隐式声明_C_C99_Printf_C89 - Fatal编程技术网

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