Stddef.h
# Stddef.h

* Libreria standard del C++
* Libreria standard del C
* <assert.h>
* <ctype.h>
* <errno.h>
* <float.h>
* <iso646.h>
* <limits.h>
* <math.h>
* <stddef.h>
* <stdio.h>
* <stdlib.h>
* <string.h>
* <time.h>
* V · D · M

stddef.h (standard definition header) è un file d'intestazione compreso nella libreria standard del C che definisce le macro NULL e offsetof e i tipi ptrdiff_t, wchar_t, e size_t.

## Inclusione

In C, l'header file "stddef.h", si include scrivendo:

In C++, invece si include l'header file "cstddef", scrivendo:

## Namespace

L'header file "stddef.h" mette le sue definizioni in ambito globale; l'header file "cstddef" mette invece size_t e ptrdiff_t nel namespace std.

## NULL

È una macro che viene espansa in un puntatore a null costante. Può essere definito come ((void*)0), 0 oppure 0L (zero Long) a seconda del compilatore e del linguaggio.

## offsetof(tipo, membro)

Una macro funzionale usata per determinare l'offset in byte del campo membro di una struct del tipo indicato.

Esempio:

Il programma sopra stampa su schermo il numero di byte a partire dal quale si trova colore; se ad esempio sizeof(int) vale 4 darà 4.

## Tipo size_t

Il tipo size_t è il tipo appropriato per rappresentare la dimensione di oggetti che stanno in aree di memoria, e per dereferenziare gli elementi di un array. Ha una dimensione che dipende dall'implementazione; in genere ha una rappresentazione a 32 bit nei sistemi a 32 bit e una rappresentazione a 64 bit nei sistemi a 64 bit. È unsigned. Ha una variante signed, ssize_t, definita nell'header file, "unistd.h" di UNIX.

## Tipo wchar_t

Sta per "wide character type" ed è un tipo inteso a rappresentare un carattere generico (più generico di char che rappresenta solo i caratteri del codice ASCII); è predefinto in C++ mentre richiede l'header file "stddef.h" o il "wchar.h" in C.

## Tipo ptrdiff_t

Il tipo ptrdiff_t serve a contenere il risultato della sottrazione tra due puntatori. Il tipo reale sottostante di ptrdiff_t varia da implementazione a implementazione.

