Nach der Antwort von here wollte ich sehen, wie viele Bytes ein snprintf verwendet. Der folgende CodeWie funktioniert das Ausrichten von snprintf-Bytes
#include "stdio.h"
int main() {
printf("%d\n", snprintf(NULL, 0, "%d:%llx:%d:%llx:%llx:%llx", 0, 0, 0, 0, 0, 0));
printf("%d\n", snprintf(NULL, 0, "%d:%llx:%d:%llx:%llx:", 0, 0, 0, 0, 0));
printf("%d\n", snprintf(NULL, 0, "%llx", 0));
return 0;
}
kehrt
22
10
1
Ich verstehe nicht, wie das% llx am Ende der anderen Daten gedruckt 12 Byte verwenden kann, während es nur 1 Byte verwendet, wenn es allein verwendet wird. Führt snprintf eine Byteausrichtung aus?
@Stargateur UB U. ist –
@DavidSchwartz der Tat egal, habe ich immer vergessen, dass C ableiten, nicht Typ in variadische Funktion. – Stargateur
Undefiniertes Verhalten, schmundefiniert schmehaviour. –