Stddef.h
Libreria standard del C++ |
Libreria standard del C |
---|
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:
#include <stddef.h> /* ... */
In C++, invece si include l'header file "cstddef", scrivendo:
#include <cstddef> // ...
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:
typedef struct provola { int peso; char colore; } PROVOLA; int main() { ... printf("%d",offsetof(PROVOLA,colore)); }
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.
Collegamenti esterni
- stddef.h on The Open Group
- stddef.h Archiviato il 27 ottobre 2009 in Internet Archive. on CPlusPlus.com
- cstddef on MSDN
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)