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