C++为char分配一个int - 为什么这个没有至少一个警告?

hel*_*hod 6 c++

为什么C++(也可能是C)允许我为char分配和int而不至少给我一个警告?

是否可以直接分配值,例如

int i = 12;
char c = i;
Run Code Online (Sandbox Code Playgroud)

即做一个隐式转换,或者我应该使用static_cast<>

编辑

顺便说一下,我正在使用gcc.

ybu*_*ill 7

在发明显式强制语法之前,它在C中被允许.然后它仍然是一种常见的做法,因此C++继承了它,以便不破坏大量的代码.

实际上大多数编译器都会发出警告.如果您没有,请尝试更改其设置.