Τι είναι το size_t στη C;

Έχω μπερδευτεί με το size_t στη C. Ξέρω ότι επιστρέφεται από τον τελεστή sizeof. Αλλά τι ακριβώς είναι; Είναι ένας τύπος δεδομένων;

Ας πούμε ότι έχω έναν βρόχο "for":

for(i = 0; i < some_size; i++)

Πρέπει να χρησιμοποιήσω int i; ή size_t i;;

Λύση

Από τη Βικιπαίδεια:

Σύμφωνα με το πρότυπο ISO C του 1999

(C99), το size_t είναι ένας ακέραιος χωρίς πρόσημο τύπου τουλάχιστον 16 bit (βλ. ενότητες 7.17 και 7.18.3). &gt, size_tείναι ένας τύπος δεδομένων χωρίς πρόσημο που ορίζεται από διάφορα πρότυπα της C/C++, π.χ. το πρότυπο C99 ISO/IEC 9899, που ορίζεται στο stddef.h.1 Μπορεί να να εισαχθεί περαιτέρω με τη συμπερίληψη της stdlib.h καθώς αυτό το αρχείο υποκαθίσταται εσωτερικά. περιλαμβάνει το stddef.h. &gt, Αυτός ο τύπος χρησιμοποιείται για την αναπαράσταση των μέγεθος ενός αντικειμένου. Συναρτήσεις της βιβλιοθήκης που λαμβάνουν ή επιστρέφουν μεγέθη τα αναμένουν να είναι του τύπου ή να έχουν τον τύπο επιστροφής του size_t. Επιπλέον, οι πιο που χρησιμοποιούνται συχνά με βάση τον μεταγλωττιστή τελεστής sizeof θα πρέπει να αποτιμάται σε ένα σταθερή τιμή που είναι συμβατή με size_t.

Ως επακόλουθο, το size_t είναι ένας τύπος που εγγυάται ότι μπορεί να κρατήσει οποιονδήποτε δείκτη πίνακα.

Σχόλια (9)

Το size_t είναι ένας τύπος χωρίς πρόσημο. Επομένως, δεν μπορεί να αναπαραστήσει αρνητικές τιμές (

Σχόλια (17)

Το manpage για το types.h λέει:

size_t πρέπει να είναι ένας ακέραιος τύπος χωρίς πρόσημο

Σχόλια (0)