答案 0 :(得分:3)
在C示例中,没有任何类型转换。 C只计算表达式5u - 10
并将结果推送到堆栈。然后printf看到一个类型字符,并在打印时解释堆栈上的值。类型字符是d
(%d
)含义"十进制整数"因此,堆栈上的位置将作为int检索并打印为(带符号)十进制。
类型字符是否为例如ld
(%ld
),堆栈上的位置将被检索为long,即使只推送了一个int,也会将其打印为(带符号)十进制数。同样,没有任何类型转换(只会打印一个无意义的数字)。
答案 1 :(得分:0)