c语言数据变量赋值类型

假定有一个程序,它把一个long整型变量赋值给一个short整型变量。当你编译程序的时候会发生什么情况?当你运行程序时会发生什么情况?你认为其他编译器的结果是否也是如此?

long整型变量赋值给一个short整型 会报错,类型转换出错,long转short大范围转小范围错误

long型比short长,所以强制转换会数据截断。后面处理就不会是你期望的数据了。

C语言是一种简陋而充满陷阱的语言,它需要程序员格外小心,而不是依赖完备的运行时检查和编译检查。
其它编译器,如果是C编译器,大多如此。当然现代的C++编译器,比如VC2015,会给出更严格的检查和警告。