C中是否有bool的格式说明符?

时间:2016-09-23 08:25:16

标签: c boolean

在以下示例中,我正在尝试扫描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的格式说明符?

2 个答案:

答案 0 :(得分:3)

C中没有bool类型的格式说明符。

对于printf,您可以依赖隐式促销int,并使用%d作为指定的格式化程序。

对于scanf,您应该将其读入int,并进行适当转换。再次,使用%d

答案 1 :(得分:-3)

bool中 C 中没有说明符。 您应该在data_pump中对其进行类型转换,以避免出现警告。

但是没有专门的格式说明符代表 bool 类型。

请尝试以下操作以避免printf()警告:

scanf()