Ist scanf ("% d% d", & x, & x) gut definiert?

Ist der folgende Code gut definiert?

#include <stdio.h>

int ScanFirstOrSecond(const char *s, int *dest) {
    return sscanf(s, "%d%d", dest, dest);
}

int main(void) {
    int x = 4;
    ScanFirstOrSecond("5", &x);
    printf("%d\n", x);  // prints 5

    // Here is the tricky bit
    ScanFirstOrSecond("6 7", &x);
    printf("%d\n", x);  // prints 7
    return 0;
}

Mit anderen Worten, machen Sie das... Argumente haben ein implizitesrestrict zu ihnen

Die am besten geeignete C-Spezifikation, die ich gefunden habe, ist

Die Funktion fscanf führt nacheinander jede Anweisung des Formats aus. ... C11dr §7.21.6.2 4

Antworten auf die Frage(6)

Ihre Antwort auf die Frage