2009-05-14 9 views

risposta

22

Da here:

senza segno tipo integrale

size_t corrisponde al tipo di dati integrale restituito dall'operatore sizeof lingua e è definita nel file di intestazione (tra gli altri) come un tipo intero senza segno.

In <cstring>, viene utilizzata come tipo di parametro num nelle funzioni memchr, memcmp, memcpy, memmove, memset, strncat, strncmp, strncpy e strxfrm, che in ogni caso è utilizzato per specificare il numero massimo di byte o caratteri che la funzione deve influenzare.

Viene anche utilizzato come tipo di ritorno per strcspn, strlen, strspn e strxfrm per restituire dimensioni e lunghezze.

-2

Questo è un tipo utilizzato in C e C++ per rappresentare semplicemente un numero intero. Credo che sia solo un typedef di int.

+1

La specifica Single Unix lo definisce come un "tipo integrale senza segno" ma non si deve assumere nulla sulla larghezza effettiva. size_t è quasi sempre senza segno, mentre ssize_t è tipicamente firmato per consentire di indicare condizioni di errore con un -1. –

4

size_t è un alias (typedef) per un numero intero senza segno.

+0

Quindi potrei anche scrivere NSUInteger w = CGImageGetWidth (inImage); ? – Thanks

+0

Non riesco a riconoscerlo, ma dovresti essere in grado di scrivere uint w = CGImageGetWidth (inImage) ;. I typedef come size_t di solito sono per chiarezza di scopo, non per definizione di struttura. –

7

size_t è un mezzo dipendente dalla piattaforma per rappresentare la dimensione degli oggetti. È sempre senza segno, ma può essere un valore a 32 bit senza segno su piattaforme a 32 bit o valore a 64 bit per piattaforme a 64 bit. Su iPhone SDK è un unsigned long.