我有以下代碼長比較
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