Является ли следующий код корректным?
#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;
}
Другими словами, имеют ли аргументы ...
им подразумеваемые restrict
?
Наиболее подходящий C spec, который я нашел,
Функция fscanf выполняет каждую директиву формата по очереди.... C11dr §7.21.6.2 4