c - 为什么我们要在数字后面加上后缀?

标签 c

我非常确定这个问题已经得到解答,尽管我没有找到它。我知道类型转换的规则,例如 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./x1.0/x)。如果 x 可能是整型但结果是浮点型,这一点很重要。

关于c - 为什么我们要在数字后面加上后缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242582/

相关文章:

C:没有其他操作数的变量周围的Parathesis

c - 如何覆盖标准 libc 函数?

C 常量结构,在堆栈上包含不同长度的数组

c - 文件描述符表 - 父/子共享它

c++ - C 和 C++ : Freeing PART of an allocated pointer

c - c 中的 dangling-else 问题到底是什么?

c - 将 GetStockObject(WHITE_BRUSH) 更改为 GetStockObject(GREY_BRUSH) 时鼠标光标丢失

C 2D Array同时更改2个元素

提取字符串崩溃的代码

c - 为什么我不能引用先前转换为 void 的字符串中的字符?