C-datatypes begrijpen: Een complete gids
Classificatie van datatypes
| Categorie | Beschrijving |
|---|---|
| Basistypes | Rekentypes: integers (gehele getallen) en floating-point (kommagetallen) |
| Enumeratietypes | Discrete integerwaarden (enum) |
| Void-type | Geen waarde (void) |
| Afgeleide types | Pointers, arrays, structuren, unions, functies |
Integere types
| Type | Opslag | Waardenbereik (typisch 64-bit) |
|---|---|---|
char | 1 byte | -128 tot 127 (of 0-255 unsigned) |
signed char | 1 byte | -128 tot 127 |
unsigned char | 1 byte | 0 tot 255 |
short / short int | 2 bytes | -32.768 tot 32.767 |
unsigned short | 2 bytes | 0 tot 65.535 |
int | 4 bytes | -2.147.483.648 tot 2.147.483.647 |
unsigned int | 4 bytes | 0 tot 4.294.967.295 |
long / long int | 8 bytes (64-bit) / 4 bytes (32-bit) | -9.22e18 tot 9.22e18 |
unsigned long | 8 bytes | 0 tot 1.84e19 |
long long (C99) | 8 bytes | -9.22e18 tot 9.22e18 |
unsigned long long | 8 bytes | 0 tot 1.84e19 |
Gebruik sizeof(type) om exacte grootte op jouw platform te vragen. Header <limits.h> definieert constanten als INT_MAX, CHAR_BIT, etc.
Voorbeeld: groottes en grenzen printen
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main() {
printf("CHAR_BIT : %d\n", CHAR_BIT);
printf("INT_MAX : %d\n", INT_MAX);
printf("LONG_MAX : %ld\n", LONG_MAX);
printf("SIZEOF int: %zu\n", sizeof(int));
return 0;
}
Floating-point types
| Type | Opslag | Bereik (approx.) | Precisie |
|---|---|---|---|
float | 4 bytes | 1.2E-38 tot 3.4E+38 | 6 decimale cijfers |
double | 8 bytes | 2.3E-308 tot 1.7E+308 | 15 decimale cijfers |
long double | 10-16 bytes | 3.4E-4932 tot 1.1E+4932 | 19+ decimale cijfers |
Header <float.h> definieert FLT_MAX, DBL_DIG, etc.
Void-type
Drie gebruiksvormen:
- Functie zonder retourwaarde:
void exit(int status); - Functie zonder parameters:
int rand(void); - Generische pointer:
void *malloc(size_t size);– kan gecast worden naar elk pointertype
Type-kwalificateurs
const– waarde mag niet wijzigen na initialisatievolatile– waarde kan onverwacht veranderen (hardware, interrupts, threads)restrict(C99) – pointer is enige toegang tot geheugengebied (optimalisatiehint)_Atomic(C11) – atomische bewerkingen
C Taal
- Elektrische Schakelaars Begrijpen: Typen, Functies en Toepassingen
- 5 datacentermodellen uitgelegd: ontwerp, use cases en voorbeelden
- Acht sleutel cloud computing-modellen van 2021
- 8 veelvoorkomende datalekkage-typen – voorbeelden uit de praktijk & impact
- C# Variabelen & Primitive Datatypes onder de knie krijgen: Complete gids
- C++ datatypes begrijpen: fundamentals, modifiers en best practices
- C Datatypes Uitgelegd: int, float, char en Meer – Een Complete Gids
- C Variabelen, Datatypes en Constanten – Een Praktische Gids
- Data Abstractie in C++ Beheersen: Ontwerp Vereenvoudigen met Interface-Implementatie Scheiding
- Python Datatypes onder de knie krijgen: Een praktische gids
- Java primitieve datatypes: complete gids met voorbeelden