c - _Bool 的 printf 转换说明符?

标签 c standards printf c99

使用 printf(),我可以将 %hhu 用于 unsigned char,将 %hi 用于 short int%zu 用于 size_t%tx 用于 ptrdiff_t 等.

我为 _Bool 使用什么转换格式说明符?标准中是否存在?

还是我必须这样投:

_Bool foo = 1;
printf("foo: %i\n", (int)foo);

最佳答案

_Bool 类型没有特定的转换长度修饰符。

_Bool 是一个无符号整数类型,大到足以存储值 01。您可以这样打印 _Bool:

_Bool b = 1;
printf("%d\n", b);

由于整数提升规则,_Bool 保证提升为 int

关于c - _Bool 的 printf 转换说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250297/

相关文章:

c - 将 int 存储在 char* 中 [C]

C 指针总和 "not working"

c - 为什么函数会根据容量返回不同的值

c - 我正在尝试构建一个 2*2 数组,但我的程序需要 5 个输入。为什么?

c - 如何在C调试中确定多个数字是奇数还是偶数

c - 在旧平台上还有哪些 NULL 的其他定义?

mysql 我应该在 mysql 查询中使用撇号吗?

c++ - 警告 : format ‘%5f’ expects type ‘double’ , 但参数 3 的类型为 ‘int’

C:对数字求和的递归函数

c++ - 标准化 2D/3D vector/坐标类