Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Qual è la dimensione di ciascun tipo di dati in byte dos e piattaforma UNIX?

Le dimensioni dei tipi di dati in DOS e UNIX (più accuratamente, sistemi conformi a POSIX come Linux, MacOS, BSD, ecc.) Possono variare leggermente a seconda del compilatore e dell'architettura di sistema specifica (ad esempio, 32 bit contro 64 bit). Tuttavia, ci sono standard generalmente accettati e dimensioni comuni. È fondamentale ricordare che questo non è * garantito e dovresti sempre consultare la documentazione del tuo compilatore per dimensioni definitive.

Dimensioni del tipo di dati comuni (approssimativo):

| Tipo di dati | Dos (in genere a 16 bit) | UNIX (in genere a 32 bit o 64 bit) | Note |

| --------------- | ------------------------ | --------------------------------------- | ------------------------------------------------ |

| `char` | 1 byte | 1 byte | Di solito firmato, ma può essere non firmato. |

| `senza segno char` | 1 byte | 1 byte | |

| `Short`. 2 byte | 2 byte (di solito) | Spesso `corto int` |

| `Short senza segno" 2 byte | 2 byte (di solito) | |

| `int`. 2 byte | 4 byte (su 32 bit), 4 o 8 byte (su 64 bit) | La dimensione dipende fortemente dall'architettura. |

| `Unsigned int` | 2 byte | 4 byte (su 32 bit), 4 o 8 byte (su 64 bit) | La dimensione dipende fortemente dall'architettura. |

| `long` 4 byte | 4 byte (su 32 bit), 8 byte (su 64 bit) | La dimensione dipende fortemente dall'architettura. |

| `Unsigned Long` | 4 byte | 4 byte (su 32 bit), 8 byte (su 64 bit) | La dimensione dipende fortemente dall'architettura. |

| `long long` Non standard | 8 byte | C99 e standard successivo. |

| `Unsigned Long Long`. Non standard | 8 byte | C99 e standard successivo. |

| `float`. 4 byte | 4 byte | Punto mobile a singola precisione. |

| `Double`. 4 byte o 8 byte | 8 byte | Punto mobile a doppia precisione. |

| `Long Double` 8 byte (spesso) | 8 byte o 16 byte | Punto mobile a precisione estesa (la dimensione varia). |

| `puntatore`. 2 byte | 4 byte (32 bit), 8 byte (64 bit) | La dimensione dipende dall'architettura. |

Considerazioni importanti:

* Variazioni dos: Le dimensioni "DOS" sono generalizzazioni. Diversi compilatori DOS e persino diversi modelli di memoria (come piccoli, medi, compatti, grandi, enormi) potrebbero influenzare la dimensione dei tipi di dati. DOS era in gran parte un sistema operativo a 16 bit, con conseguenti dimensioni più piccole.

* Variazioni unix/posix: Mentre i sistemi simili a Unix tendono ad essere più coerenti, le dimensioni `int` e` lunghe 'possono variare in base all'architettura del sistema (32 bit vs. 64 bit). Le dimensioni minime * standard *, non dimensioni esatte. L'uso di `stdint.h` (C99 e successivo) fornisce tipi interi a larghezza fissa (` int32_t`, `int64_t`, ecc.) Per una migliore portabilità.

* Influenza del compilatore: Il compilatore utilizzato (GCC, Clang, Visual C ++) può avere sottili impatti sulle dimensioni dei tipi di dati. Controlla sempre la documentazione del compilatore o usa `sizeof ()` per determinare la dimensione esatta sul sistema e sul compilatore specifici.

* `sizeof ()` Operatore: Per ottenere la dimensione precisa di un tipo di dati in byte sul sistema * il tuo *, utilizzare l'operatore `sizeof ()` in C/C ++. Ad esempio:`sizeof (int)`, `sizeof (lungo)`, ecc. Questo è il metodo più affidabile.

In sintesi, mentre la tabella offre dimensioni comuni, le dimensioni effettive sono dipendenti dal compilatore e dalla piattaforma. Verifica sempre l'utilizzo di `sizeof ()` per informazioni accurate e specifiche della piattaforma.

 

sistemi © www.354353.com