Ας υποθέσουμε ότι ένας αισθητήρας χρησιμοποιεί έναν ακέραιο 16-bit ή θέλετε να δημιουργήσετε έναν ακέραιο που είναι πάντα 16-bit. Τότε χρησιμοποιείται το "int16_t". Είναι πάντα 16 bit σε όλες τις πλακέτες Arduino.
Τι είναι το int16_t;
Το
int16_t είναι ένας ακέραιος αριθμός 16 bit. Το uint16_t είναι ένας ανυπόγραφος ακέραιος αριθμός 16 bit. Το ίδιο ισχύει για τις μεταβλητές 8bit, 32bit και 64bit. Χρησιμοποιείται κυρίως για τη δημιουργία προγραμμάτων cross platform. Για παράδειγμα, οι ακέραιοι αριθμοί Arduino (int) είναι 2 byte, αλλά στους οικιακούς υπολογιστές ένας ακέραιος είναι 32 bit.
Πρέπει να χρησιμοποιήσω int ή int16_t;
Το
int μπορεί να εξαρτάται από την αρχιτεκτονική του υλικού και είναι κυρίως 16 ή 32 bit. Ωστόσο, το an int16_t είναι πάντα 16 bit, ανεξάρτητα από την αρχιτεκτονική του υλικού. Θα πάει στραβά όταν έχετε αρχιτεκτονική 32 bit (για int) και πρόκειται να τη μεταφέρετε σε int16_t, παρά χάνετε τα MSB 16 bit.
Τι είναι το int16_t στο C;
Για παράδειγμα, το όνομα int16_t υποδηλώνει ένα 16-bit υπογεγραμμένο ακέραιο τύπο και το όνομα uint32_t υποδηλώνει έναν ακέραιο τύπο 32-bit χωρίς υπογραφή. Για να κάνετε αυτά τα ονόματα διαθέσιμα σε ένα πρόγραμμα, συμπεριλάβετε τους τύπους int. h αρχείο κεφαλίδας. … Αυτές οι νέες ονομασίες ονομάζονται ακριβείς τύποι πλάτους.
Πώς ορίζεται το uint32_t;
Τοuint32_t είναι ένας αριθμητικός τύπος που εγγυάται 32 bit . Η τιμή δεν είναι υπογεγραμμένη, που σημαίνει ότι το εύρος τιμών κυμαίνεται από 0 έως 232 - 1. uint32_t ptr; δηλώνει έναν δείκτη τύπου uint32_t, αλλά ο δείκτης δεν έχει αρχικοποιηθεί,δηλαδή, ο δείκτης δεν δείχνει πουθενά συγκεκριμένα.