C和C ++中布尔值的sizeof运算符的输出差异

问题描述 投票:2回答:3
#include<stdio.h>
#include<stdbool.h>
int main()
{
    printf("%d",sizeof(true));
    printf("%d",sizeof(false));
}

以上代码在C ++中的输出是11,在C中是44。为什么输出会有差异?

c++ c size sizeof
3个回答
2
投票

在C中,truefalse是在<stdbool.h>中定义的宏,它们根据C 2018 7.18扩展为类型为int的整数常量1和0。int的大小是实现-定义,并且4是常见的大小。


2
投票

虽然C标准不需要标头的cpp部分,但如果您看到广泛使用的编译器,例如stdbool.h(与Clang类似的文件)的GCC实现,您就会看到


1
投票

[truefalse在C和C ++中的含义不同。

© www.soinside.com 2019 - 2024. All rights reserved.