关于"int"口味的操作存在疑问

Arp*_*pit 4 c linux gcc gcc-warning

我对"int"风格有疑问(unsigned int,long int,long long int).

当我们在32位系统和64位系统中对int和它的味道(比如说long int)之间做一些操作(*,/,+, - )时,"int"会发生隐式类型转换

例如 :-

int x; long long int y = 2000;

x = y; (更高的分配可能会发生更低的一次数据截断)我期待编译器为此发出警告但是我没有收到任何此类警告.这是由于隐式类型转换在这里发生的"x".我正在使用gcc和-Wall选项.是否会改变32位和64位的行为.

谢谢Arpit

Shi*_*zou 7

-Wall不会激活所有可能的警告.-Wextra启用其他警告.无论如何,你所做的是一个完美的"合法"操作,因为编译器不能总是在编译时知道可能被"截断"的数据的值,所以它没有警告:程序员应该已经知道事实上,"大"整数不能适合"小"整数,因此通常由程序员决定.如果您认为您的程序是在不了解此程序的情况下编写的,请添加-Wconversion.