2012-11-15 102 views
12

從書我讀報價:什麼是「擴展整數類型」?

  1. signed char, signed short int, signed int, signed long int, signed long long int are called standard signed integer types
  2. unsigned char, unsinged short int, unsigned int, unsigned long int, unsinged long long int, _Bool are called standard unsigned integer types
  3. In addition to the standard integer types, the C99 standard allows implementation-defined extended integer types, both signed and unsigned. For example, a compiler might be provide signed and unsigned 128-bit integer types.

我已經與第三點問題。什麼是這些「擴展整數類型」?任何例子?

+0

long long long int? –

+2

錯誤:'long long long'對於GCC來說太長了 – fuz

回答

2

擴展整數類型的一個例子是由微軟的Visual C.定義的__int64 64位帶符號整數型雖然這種類型顯然它不能作爲intlong int獲得一體型,在舊版本的MSVC,也不long long int。 (MSVC在此期間增加了對long long int的支持。)

+6

這不是最好的例子,因爲'MSVC'是c90,而c90不具有*擴展整數類型*。他們在c99被介紹了。 – ouah

+1

@ouah好點。我認爲說擴展整數類型被引入來覆蓋這種情況會更準確。 – user4815162342

+2

注意:也可以由gcc定義的'__int128'不是*擴展整數類型,因爲[GCC不支持任何擴展整數類型](https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation。 HTML)。 – jfs

3

擴展整數類型是作爲擴展提供的特定於實現的整數類型。因爲幾乎所有關於這種擴展的東西都是由實現定義的,所以標準不能多說這些。但是,C++ 09提議提供了一種框架,以不干擾標準兼容程序的行爲的方式實現這些擴展。

您應該參考this,其中涵蓋了有關擴展整數類型的所有信息。

+2

從這裏http://vineetgupta22.wordpress.com/tag/unsigned-integer/? – md5