这段代码的输出:
const char *buff = "*_2D 1"; char field[10]; int flag; sscanf(buff,"%s %d",field,&flag); printf("field:%s flag:%i ",flag);
是 field:*_2D flag:1
但是,将 int 更改为 bool 会导致奇怪的行为:
const char *buff = "*_2D 1"; char field[10]; bool flag; sscanf(buff,flag);
输出是 field: flag:1
谁能解释这里发生了什么?我原以为 bool 会被解释为一个 int,它似乎是,但字符串的其余部分消失了.