Ենթադրենք, որ սենսորն օգտագործում է 16-բիթանոց ամբողջ թիվ կամ ցանկանում եք ստեղծել մի ամբողջ թիվ, որը միշտ 16-բիթանոց է: Դա այն ժամանակ է, երբ օգտագործվում է «int16_t»: Այն միշտ 16 բիթ է բոլոր Arduino տախտակների վրա:
Ի՞նչ է int16_t?
int16_t-ը 16 բիթ ամբողջ թիվ է: uint16_t-ը անստորագիր 16 բիթանոց ամբողջ թիվ է: Նույնը վերաբերում է 8 բիթ, 32 բիթ և 64 բիթ փոփոխականներին: Այն հիմնականում օգտագործվում է ծրագրերի խաչմերուկ պատրաստելու համար: Օրինակ՝ Arduino-ի ամբողջ թվերը (int) 2 բայթ են, բայց տնային համակարգիչներում ամբողջ թիվը 32 բիթ է։
Պե՞տք է օգտագործեմ int կամ int16_t?
int-ը կարող է կախված լինել ապարատային ճարտարապետությունից և հիմնականում 16 կամ 32 բիթ է: Այնուամենայնիվ, an int16_t-ը միշտ 16 բիթ է՝ անկախ ապարատային ճարտարապետությունից: Այն կսխալվի, երբ դուք ունեք 32 բիթ ճարտարապետություն (int-ի համար), և պատրաստվում եք այն փոխանցել int16_t-ին, քան կորցնեք MSB 16 բիթը:
Ի՞նչ է int16_t-ը C-ում:
Օրինակ, int16_t անունը ցույց է տալիս 16-բիթանոց ստորագրված ամբողջ թվի տեսակը, իսկ uint32_t անունը ցույց է տալիս 32-բիթանոց անստորագիր ամբողջ թվի տեսակը: Այս անունները ծրագրին հասանելի դարձնելու համար ներառեք inttypes-ը: h վերնագրի ֆայլ: … Այս նոր նշանակումները կոչվում են ճշգրիտ լայնության տեսակներ:
Ինչպե՞ս է սահմանվում uint32_t-ը:
uint32_t-ը թվային տեսակ է, որը երաշխավորում է 32 բիթ : Արժեքն անստորագիր է, ինչը նշանակում է, որ արժեքների միջակայքը գնում է 0-ից մինչև 232 - 1. uint32_t ptr; հայտարարում է uint32_t տիպի ցուցիչ, բայց ցուցիչը չնախաստորագրված է,այսինքն՝ ցուցիչը կոնկրետ որևէ տեղ չի ցույց տալիս։