【发布时间】:2014-03-25 22:05:34
【问题描述】:
我注意到,当我编译这个 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 ?有人可以向我解释这种行为吗?
【问题讨论】:
-
不,这意味着C90标准不包括
snprintf。您的测试没有说明sprintf,因为它没有被使用。 -
@Kaz,我的意思是 snprintf。我打错了。