| De grootte van gegevenstypen in DOS en UNIX (nauwkeuriger gezegd, POSIX-compatibele systemen zoals Linux, macOS, BSD, enz.) kan enigszins variëren, afhankelijk van de compiler en specifieke systeemarchitectuur (bijvoorbeeld 32-bit versus 64-bit). Er zijn echter algemeen aanvaarde normen en gangbare maten. Het is van cruciaal belang om te onthouden dat dit *niet* gegarandeerd is en dat u altijd de documentatie van uw compiler moet raadplegen voor definitieve afmetingen.
Gemeenschappelijke gegevenstypegroottes (bij benadering):
| Gegevenstype | DOS (meestal 16-bit) | UNIX (meestal 32-bits of 64-bits) | Opmerkingen |
|--------------|----------------------|----------------- ---------------|---------------------------------------|
| `char` | 1 byte | 1 byte | Meestal ondertekend, maar kan niet ondertekend zijn. |
| `niet-ondertekende char`| 1 byte | 1 byte | |
| `kort` | 2 bytes | 2 bytes (meestal) | Vaak `korte int` |
| `niet-ondertekende short`| 2 bytes | 2 bytes (meestal) | |
| `int` | 2 bytes | 4 bytes (op 32-bit), 4 of 8 bytes (op 64-bit) | Grootte is sterk afhankelijk van de architectuur. |
| `unsigned int` | 2 bytes | 4 bytes (op 32-bit), 4 of 8 bytes (op 64-bit) | Grootte is sterk afhankelijk van de architectuur. |
| `lang` | 4 bytes | 4 bytes (op 32-bit), 8 bytes (op 64-bit) | Grootte is sterk afhankelijk van de architectuur. |
| `niet-ondertekend lang`| 4 bytes | 4 bytes (op 32-bit), 8 bytes (op 64-bit) | Grootte is sterk afhankelijk van de architectuur. |
| `lang lang` | Niet standaard | 8 bytes | C99 en later standaard. |
| `niet-ondertekend lang lang`| Niet standaard | 8 bytes | C99 en later standaard. |
| `zweven` | 4 bytes | 4 bytes | Drijvende-komma met enkele precisie. |
| `dubbel` | 4 bytes of 8 bytes | 8 bytes | Zwevende-komma met dubbele precisie. |
| `lange dubbele` | 8 bytes (vaak) | 8 bytes of 16 bytes | Drijvende-komma met uitgebreide precisie (grootte varieert). |
| `wijzer` | 2 bytes | 4 bytes (32-bits), 8 bytes (64-bits) | Grootte is afhankelijk van de architectuur. |
Belangrijke overwegingen:
* DOS-variaties: De "DOS"-groottes zijn generalisaties. Verschillende DOS-compilers en zelfs verschillende geheugenmodellen (zoals klein, middelgroot, compact, groot, enorm) kunnen de grootte van gegevenstypen beïnvloeden. DOS was grotendeels een 16-bits besturingssysteem, wat resulteerde in kleinere formaten.
* UNIX/POSIX-variaties: Hoewel UNIX-achtige systemen doorgaans consistenter zijn, kunnen de 'int'- en 'long'-groottes variëren, afhankelijk van de systeemarchitectuur (32-bit vs. 64-bit). De standaard schrijft *minimum* maten voor, geen exacte maten. Het gebruik van `stdint.h` (C99 en hoger) biedt integer-typen met een vaste breedte (`int32_t`, `int64_t`, etc.) voor betere draagbaarheid.
* Invloed van de compiler: De compiler die u gebruikt (GCC, Clang, Visual C++) kan subtiele gevolgen hebben voor de grootte van het gegevenstype. Controleer altijd de documentatie van uw compiler of gebruik `sizeof()` om de exacte grootte op uw specifieke systeem en compiler te bepalen.
* `sizeof()` operator: Om de precieze grootte van een gegevenstype in bytes op *uw* systeem te achterhalen, gebruikt u de operator `sizeof()` in C/C++. Bijvoorbeeld:`sizeof(int)`, `sizeof(long long)`, etc. Dit is de meest betrouwbare methode.
Samenvattend:hoewel de tabel algemene formaten weergeeft, zijn de werkelijke formaten compiler- en platformafhankelijk. Verifieer altijd met `sizeof()` voor nauwkeurige, platformspecifieke informatie. |