Είναι το μέγεθος του C “”int” 2 byte ή 4 byte;

Einai To Megethos Tou C Int 2 Byte E 4 Byte



Το μέγεθος του ' ενθ ' στη γλώσσα C είναι ένα καυτό θέμα που προκαλεί συχνά σύγχυση στο μυαλό του αναγνώστη. Την εποχή που αναπτύχθηκε το C, το μέγεθος του ' ενθ ” ήταν 2 byte αλλά καθώς περνούσε ο χρόνος και κυκλοφόρησε η ενημερωμένη έκδοση, το μέγεθος συνήθως έφτασε 4 byte . Ωστόσο, δεν είναι ένας σκληρός και γρήγορος κανόνας, καθώς το μέγεθος ενός ' ενθ ” μπορεί να διαφέρει ανάλογα με τον μεταγλωττιστή και την πλατφόρμα που χρησιμοποιείτε για κωδικοποίηση.

Εάν είστε μπερδεμένοι σχετικά με το μέγεθος του ' ενθ 'είτε είναι 2 byte ή 4 byte , ακολουθήστε τις οδηγίες αυτού του άρθρου.

Είναι το μέγεθος του C 'int' 2 Byte ή 4 Byte

Στις πρώτες μέρες, όταν εισήχθη η γλώσσα C, το μόνο πράγμα που ήρθε στο μυαλό των προγραμματιστών ήταν να κάνουν αυτή τη γλώσσα όσο το δυνατόν πιο απλή. Εκείνη την εποχή, ο υπολογιστής χρησιμοποιούσε έναν επεξεργαστή 16-bit, επομένως εκείνη την εποχή, το μέγεθος ' ενθ ” καθορίστηκε σε 2 byte. Καθώς ο χρόνος περνά, η υπολογιστική ισχύς του συστήματος αυξάνεται και ο προγραμματιστής αλλάζει στη συνέχεια το μέγεθος του ' ενθ ” σε C έως 4 byte. Ο λόγος για αυτό είναι να επιτρέπεται στους προγραμματιστές C να χρησιμοποιούν μεγάλες τιμές και να αναπτύσσουν περισσότερα προγράμματα ισχύος στο σύστημα.







Ποιοι Παράγοντες επηρεάζουν το μέγεθος «int» στο C

Υπάρχουν τρεις παράγοντες που επηρεάζουν την « ενθ μέγεθος σε C, τα οποία έχουν ως εξής:



1: ο επεξεργαστή ενός συστήματος επηρεάζει πολύ το « ενθ ' Μέγεθος. Για μια αρχιτεκτονική 32-bit, η τιμή του ' ενθ Το μέγεθος είναι 4 byte. Ο λόγος είναι ότι ένα byte αποτελείται από 8 bit, οπότε αν πολλαπλασιάσετε 8 bit/byte με 4 byte, το αποτέλεσμα θα είναι 32 bit.



2: ο λειτουργικό σύστημα η έκδοση έχει επίσης τεράστιο αντίκτυπο στο ' ενθ 'Το μέγεθος και το λειτουργικό σύστημα 64-bit θα χρησιμοποιούν 4 byte' ενθ ” τύπους. Ωστόσο, αυτό θα εξακολουθούσε να εξαρτάται από άλλους παράγοντες όπως ο μεταγλωττιστής ή η πλατφόρμα που χρησιμοποιείται.





3: ο μεταγλωττιστής επηρεάζει επίσης το « ενθ ' μέγεθος σε C και υπάρχουν μεταγλωττιστές που επιτρέπουν στους προγραμματιστές C να διαμορφώσουν το μέγεθος του 'int' σύμφωνα με την επιλογή τους.

Διαφορετικοί μεταγλωττιστές θα μπορούσαν να έχουν διαφορετικές υλοποιήσεις της γλώσσας C, που σημαίνει ότι μπορούν να δουν το C ' ενθ Τύπος δεδομένων με διαφορετικούς τρόπους. Συνηθέστερα, ένας μεταγλωττιστής θα μπορούσε να εξετάσει ένα ' ενθ ” στη γλώσσα C to be 2 byte ή 4 byte σε μέγεθος. ΕΝΑ 2 byte 'int' θα καταλάμβανε δύο byte μνήμης, με τις τιμές που θα μπορούσε να αποθηκεύσει να εμφανίζονται ως -32768 προς την 32767 . Αντίθετα, α 4 byte 'int' θα καταλάμβανε τέσσερις byte μνήμης, με τις τιμές να εμφανίζονται ως -2147483648 προς την 2147483647 .



Ωστόσο, αν ελέγξουμε το μέγεθος ενός ' ενθ Σε έναν σύγχρονο μεταγλωττιστή C++, μας δίνει την απάντηση:

#include
#include
#include

int main ( int argc, char ** argv ) {
printf ( 'Int_MAX     :   %d \n ' , INT_MAX ) ;
printf ( 'int_MIN    :   %d \n ' , INT_MIN ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Στον παραπάνω κώδικα, προσδιορίζουμε το μέγεθος ενός ' ενθ ” χρησιμοποιώντας τις λειτουργίες int_MAX() και int_MIN() που μας δείχνει ότι το μέγεθος ενός ' ενθ ' είναι 4 byte .

Παραγωγή

Οι περισσότεροι σύγχρονοι μεταγλωττιστές υλοποιούν τη γλώσσα C με τέτοιο τρόπο ώστε το μέγεθος ενός C Το 'int' είναι 4 byte . Τούτου λεχθέντος, ορισμένοι μεταγλωττιστές εξακολουθούν να χρησιμοποιούν το 2 byte 'int' μέγεθος, που σημαίνει ότι οι προγραμματιστές πρέπει να ελέγχουν τον μεταγλωττιστή που χρησιμοποιούν για να βεβαιωθούν ότι το πρόγραμμά τους λειτουργεί σωστά.

συμπέρασμα

Το ακριβές μέγεθος C 'int' Ο τύπος δεδομένων μπορεί να ποικίλλει ανάλογα με τον μεταγλωττιστή που χρησιμοποιείται. Συνηθέστερα, είναι 4 byte , επιτρέποντας την αποθήκευση μεγαλύτερου εύρους τιμών. Τούτου λεχθέντος, ορισμένοι μεταγλωττιστές μπορούν ακόμα να υλοποιήσουν τη γλώσσα C με τέτοιο τρόπο ώστε το μέγεθος C 'int' είναι 2 byte. Τελικά, ο προγραμματιστής πρέπει να γνωρίζει τον μεταγλωττιστή που χρησιμοποιείται για να προσδιορίσει την ακριβή ακρίβεια μέγεθος C 'int' .