簡體   English   中英

C / C ++中數據類型名稱的含義

[英]Meaning of data type names in C/C++

在C和C ++中,內置整數類型的大小取決於實現。 但是,它們是否有任何預定義的預期含義,以便int可以表示機器字的大小等?

從歷史上看, int被認為是機器硬件上整數的最“自然”類型。 顯然,“自然”在某種程度上是主觀的,但是在過去,它通常很明顯,而且反正沒有太多整數類型可用,因此使intlongshort大小相同是正常的做法。

由於各種原因,大多數64位平台將int 32位。 可以很容易地認為這不是最“自然的”長度,但是人們希望32位整數是默認整數,而int顯然是默認整數類型。 對於體系結構來說是否最自然,是否成為默認大小是次要的。

關於字長:從歷史上看,這是最自然的,但是在許多方面,尚不清楚現代機器上的“字長”是什么意思:您可以算術運算的最大字長? 往返於內存的總線傳輸大小? 傳統上,“字長”用於表示內部寄存器的寬度(當機器擁有它們時)或基本總線傳輸的大小。 (盡管8088具有32位寄存器,但通常被稱為8位計算機。)今天,我不會在其中添加太多含義。

上面有一些措辭,但不是很刻板:

聲明為字符(char)的對象應足夠大以存儲實現的基本字符集的任何成員。

有五種標准的帶符號整數類型:“帶符號字符”,“ short int”,“ int”,“ long int”和“ long long int”。 在此列表中,每種類型提供的存儲量至少與列表中位於其前面的類型相同。 (...) 普通整數具有執行環境的體系結構建議的自然大小 ,還提供了其他有符號整數類型以滿足特殊需要。

也沒有關於浮子尺寸的嚴格建議:

共有三種浮點類型:float,double和long double。 double類型至少提供與float一樣高的精度,long long類型提供至少與double一樣高的精度。 (...) 浮點類型的值表示形式是實現定義的。

與Java不同,C被設計為平台支持者,而不是獨立平台。 與使用對給定平台最佳工作的數據類型大小相比,跨平台兼容性的優先級要低得多。 因此,C標准未指定整數類型,並且整數類型完全是平台特定的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM