Mit snprintf in einer plattformübergreifenden Anwendung
Ich schreibe ein C-Programm, das voraussichtlich mit allen wichtigen Compilern kompiliert werden kann. Derzeit entwickle ich GCC auf einem Linux-Computer und werde es vor dem Festschreiben des Codes in MSVC kompilieren. Um das Cross-Compilieren zu vereinfachen, kompiliere ich mit-ansi
und-pedantic
Flaggen. Das hat gut funktioniert, bis ich mit @ angefangen hasnprintf
, das im C89-Standard nicht verfügbar ist. GCC kann dies ohne das @ kompilier-ansi
switch, aber MSVC schlägt immer fehl, da es keine C99-Unterstützung bietet.
So habe ich so etwas gemacht,
#ifdef WIN32
#define snprintf sprintf_s
#endif
Dies funktioniert gut, weilsnprintf
undsprintf_s
hat die gleichen Signaturen. Ich frage mich, ist das der richtige Ansatz?