2013-06-01 49 views

回答

5

也沒有。它被視爲一個字符串。除非另有聲明,否則所有shell變量值都是字符串(例如,declare -i fact,一個非標準的shell擴展)。當你用$(())進行算術擴展或將變量值作爲參數傳遞給其他工具時,「多少位存在並存在符號」的問題才變得有意義,如exprbc

POSIX Shell Specification的算術展開說需要

只有簽訂長整數運算。

bash的手冊只保證

評價以固定寬度的整數做有用於溢出沒有檢查 ,雖然除以0被捕獲並標記爲錯誤。

由於C保證signed long>> = 32位,因此可以安全地假設至少32位有符號整數。我希望64位系統上有64位。

+0

在64位系統上,C中的整數大小是64位嗎?我認爲它應該是32位。如果我在這裏錯了,請糾正我? – Bourne

+0

這取決於。我編程的系統中,除64位,甚至「短」以外的所有類型。那些是Cray Unicos數字計算機。 C語言只定義了最小寬度,所以不需要「int」是32位。對於'int',它可能是任何東西> = 16位。 – Jens

+0

Cray Unicos是一款64位操作系統嗎?那麼在C中決定int或long的大小呢? 32位操作系統是否具有64位大小的int – Bourne

相關問題