Вы, похоже, используете gcc
, но этот компилятор не обязательно использует glibc, который соответствует стандарту C и поддерживает snprintf
.
В архитектуре Windows вы можете использовать библиотеку Microsoft C, которая в более старых версиях не имела snprintf
или переименовала ее в _snprintf
.
Вот два способа обойти вашу проблему:
- попробуйте использовать
_snprintf
вместо snprintf
.
определить snprintf
вручную после включения <stdio.h>
как
int snprintf(char *buf, size_t size, const char *fmt, ...);
Компилятор должен прекратить жаловаться на отсутствующий прототип, и если у библиотеки времени выполнения есть символ для snprintf
с соответствующим соглашением о вызовах, он будет ссылаться на него, и программа должна вести себя так, как ожидается.