在以下示例中,我正在尝试扫描boolean
类型变量的值。当我在GCC中编译时,我收到以下警告,
warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘_Bool *’ [-Wformat=]
scanf("%d",&b);
码
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool b;
scanf("%d",&b);
printf("%d\n",b);
}
我的问题是,C
中是否有bool的格式说明符?
答案 0 :(得分:3)
C中没有bool
类型的格式说明符。
对于printf
,您可以依赖隐式促销int
,并使用%d
作为指定的格式化程序。
对于scanf
,您应该将其读入int
,并进行适当转换。再次,使用%d
。
答案 1 :(得分:-3)
bool中 C 中没有说明符。
您应该在data_pump
中对其进行类型转换,以避免出现警告。
但是没有专门的格式说明符代表 bool 类型。
请尝试以下操作以避免printf()
警告:
scanf()