Usando snprintf em um aplicativo de plataforma cruzada
Estou escrevendo um programa em C que deve ser compilado com todos os principais compiladores. Atualmente, estou desenvolvendo no GCC em uma máquina Linux e compilando no MSVC antes de confirmar o código. Para facilitar a compilação cruzada, estou compilando com-ansi
e-pedantic
bandeiras. Isso funcionou bem até eu começar a usarsnprintf
que não está disponível no padrão C89. O GCC pode compilar isso sem o-ansi
mas o MSVC falhará sempre, pois não possui suporte para C99.
Então eu fiz algo como,
#ifdef WIN32
#define snprintf sprintf_s
#endif
Isso funciona bem porquesnprintf
esprintf_s
tem as mesmas assinaturas. Gostaria de saber se esta é a abordagem correta?