c - 长比较

标签 c long-integer

我有以下代码

long x;
scanf("%ld",&x)
if(x==-1) // does this comparison is allowed
    printf("just test\n");

long 参数在比较之前是否需要转换?

最佳答案

-1 是十进制的 int 。存在从 intlong 的隐式转换(提升),因此 -1 自动“转换”为 long .

此外,-1x 都是有符号类型。不需要任何额外的转换。

关于c - 长比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978211/

相关文章:

html - 用 CSS 打断长单词

查找 "Cullen' 号的 C 代码”

c - 跟踪未初始化的静态变量

C语言编程while循环

Java 的 L 号(长)规范

c++ - 'Natural Size' 在 C++ 中的真正含义是什么?

java - 为什么我的代码显示错误 - 'integer number too large' ;尽管我已经将参数类型声明为 long?

Java JUnit assertEquals 与 Long

Linux 上的 C : Parse arguments from '<' and '|'

c - 打印 uint8_t