我有以下代码长比较
long x;
scanf("%ld",&x)
if(x==-1) // does this comparison is allowed
printf("just test\n");
不long
参数需要进行任何造型比较之前?
我有以下代码长比较
long x;
scanf("%ld",&x)
if(x==-1) // does this comparison is allowed
printf("just test\n");
不long
参数需要进行任何造型比较之前?
-1
是小数点int
。有一个从int
到long
的隐式转换(升级),因此-1
会自动“铸造”到long
。另外,-1
和x
都是签名类型。不需要任何额外的演员。
谢谢你的回答。在10分钟内接受 – MOHAMED 2013-02-20 11:05:36
正如我所说,没关系。如果你想避免“型焦虑”,你可以使字面有long
类型:
if(x == -1l)
^
|
lower-case 'L'
means "long int"
但是,这是一个有点着急,看着本身,在某些情况下。
或者直接写'-1L'。小写'l'被认为是不好的风格,因为它看起来像某些编辑器字体上的数字1。 – Lundin 2013-02-20 11:49:29
演员的必要性只能从某些情况下推导出来。无论如何,我不明白为什么“长”会是一个特例。 – 2013-02-20 11:04:33