我非常确定这个问题已经得到解答,尽管我没有找到它。我知道类型转换的规则,例如 this 。即使我们分配 1
(默认类型为 signed int
)到 unsigned int
变量,unsigned int
类型的变量如果 1
将具有该值在任一情况下。换句话说,为什么我要输入 U
后缀,除非避免类型转换(如果我打算将该值主要分配给 unsigned int
s)?
最佳答案
当您需要精确控制类型时,文字值后缀最为重要。例如,40 亿适合无符号 32 位 int,但不适合有符号 int。因此,如果您这样做,您的编译器可能会提示:
printf("%u", 4000000000);
warning: format specifies type 'unsigned int' but the argument has type 'long'
还可以使用浮点后缀 f
来确保在算术中以这种方式使用值,例如 1f/x
(也可以写为 1./x
或 1.0/x
)。如果 x 可能是整型但结果是浮点型,这一点很重要。
关于c - 为什么我们要在数字后面加上后缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242582/