我注意到当我编译这个iniparser时,它会发出以下警告:
src/iniparser.c:244:5: warning: implicit declaration of function ‘snprintf’ [-Wimplicit-function-declaration]
snprintf(keym, secsize, "%s:", s);
该解决方案应该添加:
#include <stdio.h>
我试过这个,但仅凭这一点并没有解决问题。然后我查看了Makefile中的编译标志,发现了这个:
CFLAGS += -fPIC -Wall -ansi -pedantic
如果我将其更改为:
CFLAGS += -fPIC -Wall -std=c99 -pedantic
编译时没有发出警告。这是否意味着C90标准不包括snprintf
?有人可以向我解释这种行为吗?
答案 0 :(得分:4)
snprintf
仅在C99中指定,与C90中的 sprintf
不同。有关详细信息,请参阅man sprintf
。