Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C - Gegevenstypen

Gegevenstypen in c verwijzen naar een uitgebreid systeem dat wordt gebruikt voor het declareren van variabelen of functies van verschillende typen. Het type variabele bepaalt hoeveel ruimte deze inneemt in de opslag en hoe het opgeslagen bitpatroon wordt geïnterpreteerd.

De typen in C kunnen als volgt worden ingedeeld −

Sr.nr. Typen en beschrijving
1

Basistypen

Het zijn rekenkundige typen en worden verder ingedeeld in:(a) typen integers en (b) typen met drijvende komma.

2

Opsomde typen

Het zijn weer rekenkundige typen en ze worden gebruikt om variabelen te definiëren die alleen bepaalde discrete gehele getallen in het programma kunnen toewijzen.

3

Het type ongeldig

De typespecificatie void geeft aan dat er geen waarde beschikbaar is.

4

Afgeleide typen

Ze omvatten (a) Pointer-typen, (b) Array-typen, (c) Structuurtypen, (d) Union-typen en (e) Functietypen.

De arraytypen en structuurtypen worden gezamenlijk de aggregatietypen genoemd. Het type van een functie specificeert het type van de geretourneerde waarde van de functie. We zullen de basistypen in het volgende gedeelte zien, terwijl andere typen in de komende hoofdstukken zullen worden behandeld.

Integer-typen

De volgende tabel geeft de details van standaard integer-typen met hun opslaggroottes en waardebereiken −

Type Opslaggrootte Waardebereik
char 1 byte -128 tot 127 of 0 tot 255
niet-ondertekend teken 1 byte 0 tot 255
ondertekend teken 1 byte -128 tot 127
int 2 of 4 bytes -32.768 tot 32.767 of -2.147.483.648 tot 2.147.483.647
unsigned int 2 of 4 bytes 0 tot 65.535 of 0 tot 4.294.967.295
kort 2 bytes -32.768 tot 32.767
unsigned short 2 bytes 0 tot 65.535
lang 8 bytes of (4bytes voor 32-bits besturingssysteem) -9223372036854775808 naar 9223372036854775807
unsigned long 8 bytes 0 tot 18446744073709551615

Om de exacte grootte van een type of een variabele op een bepaald platform te krijgen, kunt u de sizeof gebruiken exploitant. De uitdrukkingen sizeof(type) geeft de opslaggrootte van het object of typt in bytes. Hieronder is een voorbeeld gegeven om de grootte van verschillende typen op een machine te krijgen met behulp van verschillende constante gedefinieerd in het headerbestand limit.h −

Live demo
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

Wanneer u het bovenstaande programma compileert en uitvoert, levert dit het volgende resultaat op onder Linux −

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

Drijvende-kommatypes

De volgende tabel geeft de details van standaard drijvende-kommatypes met opslaggroottes en waardebereiken en hun precisie −

Type Opslaggrootte Waardebereik Precisie
zweven 4 bytes 1.2E-38 tot 3.4E+38 6 decimalen
dubbel 8 bytes 2.3E-308 tot 1.7E+308 15 decimalen
lange dubbele 10 bytes 3.4E-4932 tot 1.1E+4932 19 decimalen

Het headerbestand float.h definieert macro's waarmee u deze waarden en andere details over de binaire weergave van reële getallen in uw programma's kunt gebruiken. Het volgende voorbeeld drukt de opslagruimte af die wordt ingenomen door een float-type en zijn bereikwaarden −

Live demo
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

Wanneer u het bovenstaande programma compileert en uitvoert, levert dit het volgende resultaat op onder Linux −

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

Het lege type

Het void type geeft aan dat er geen waarde beschikbaar is. Het wordt in drie soorten situaties gebruikt −

Sr.nr. Typen en beschrijving
1

Functie keert terug als ongeldig

Er zijn verschillende functies in C die geen waarde retourneren of je kunt zeggen dat ze ongeldig zijn. Een functie zonder retourwaarde heeft het retourtype void. Bijvoorbeeld ongeldige exit (int status);

2

Functieargumenten als ongeldig

Er zijn verschillende functies in C die geen enkele parameter accepteren. Een functie zonder parameter kan een leegte accepteren. Bijvoorbeeld int rand(void);

3

Aanwijzingen om te annuleren

Een aanwijzer van het type void * vertegenwoordigt het adres van een object, maar niet het type. Bijvoorbeeld een geheugentoewijzingsfunctie void *malloc( size_t size ); geeft een pointer to void terug die naar elk datatype kan worden gecast.


C Taal

  1. Schakeltypes
  2. C#-variabelen en (primitieve) gegevenstypen
  3. C++-gegevenstypen
  4. C Gegevenstypen
  5. Python-gegevenstypen
  6. Java-gegevenstypen (primitief)
  7. C Variabele, gegevenstypen, constanten
  8. 5 verschillende soorten datacenters [met voorbeelden]
  9. 8 verschillende soorten cloud computing in 2021
  10. 8 verschillende soorten datalekken met voorbeelden
  11. Gegevensabstractie in C++