以下代码是否定义良好?
#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规范是:
fscanf函数依次执行每个格式指令。... C11dr §7.21.6.2 4
restrict
的工作原理吗?请查看C11 6.7.3.1:4中的“并且X也被修改”这句话。 - Pascal Cuoqscanf
的等效情况。如果您使用newline
分隔两个输入,您是否期望它们被颠倒? - Weather Vane