【发布时间】:2016-07-08 22:20:08
【问题描述】:
我最近错误地将 int 声明为 bool,并且 g++ 编译器没有出现类型错误。然后我再次尝试进行测试,它编译得很好。有人可以解释为什么这是可以接受的行为吗?至少当我尝试 ++ 一个布尔值或当我将 bool 分配为 integer 时,编译器不应该给我一个警告吗?
int main(int argc, char** argv)
{
bool x = 0;
x++;
x++;
cout << x << "\n";
return 0;
}
【问题讨论】:
-
bool在 C++ 中内部实现为int,唯一允许的值是1和0。 -
@HappyCoder 这听起来不对。你可能会想到 C。
-
哦,是的。那将是 C。在 C++ 的情况下,实现因编译器而异
标签: c++