izmērs_t ir neparakstīts vesels skaitlis datu tips, kas ir definēts dažādos galvenes failos, piemēram:
, , , , ,>
Tas ir veids, ko izmanto, lai attēlotu objektu lielumu baitos, un tāpēc to izmanto kā atgriešanas veidu izmērs operators . Tas ir garantēts, ka tas ir pietiekami liels, lai saturētu lielāko objektu, ko var apstrādāt resursdatora sistēma. Būtībā maksimālais pieļaujamais izmērs ir atkarīgs no kompilatora; ja kompilators ir 32 bitu, tad tas ir vienkārši typedef (t.i., aizstājvārds) neparakstīts int bet, ja kompilators ir 64 bitu, tad tas būtu typedef priekš neparakstīts garš garš . The izmērs_t datu tips nekad nav negatīvs.
Tāpēc daudzas C bibliotēkas funkcijas, piemēram, malloc, memcpy un strlen deklarēt savus argumentus un atgriešanas veidu kā izmērs_t . Piemēram,
C
iteratora java karte
// Declaration of various standard library functions.> // Here argument of 'n' refers to maximum blocks that can be> // allocated which is guaranteed to be non-negative.> void>*>malloc>(>size_t> n);> // While copying 'n' bytes from 's2' to 's1'> // n must be non-negative integer.> void>*>memcpy>(>void>* s1,>void> const>* s2,>size_t> n);> // strlen() uses size_t because the length of any string> // will always be at least 0.> size_t> strlen>(>char> const>* s);> |
>
>
izmērs_t vai jebkurš neparakstīts tips var tikt izmantots kā cilpas mainīgais, jo cilpas mainīgie parasti ir lielāki vai vienādi ar 0.
Piezīme: Kad mēs izmantojam a izmērs_t objektu, mums ir jāpārliecinās, ka visos kontekstos, kas tiek izmantoti, ieskaitot aritmētiku, mēs vēlamies tikai nenegatīvas vērtības. Piemēram, šāda programma noteikti sniegtu negaidītu rezultātu:
1. piemērs
C
// C program to demonstrate that size_t or> // any unsigned int type should be used> // carefully when used in a loop.> #include> #define N 10> int> main()> {> >int> a[N];> >// This is fine.> >for> (>size_t> n = 0; n a[n] = n; } // But reverse cycles are tricky for unsigned // types as they can lead to infinite loops. for (size_t n = N - 1; n>= 0; --n) printf('%d ', a[n]); }> |
java pupiņas
>
>
Output Infinite loop and then segmentation fault>
2. piemērs
- Datu tips size_t C ir neparakstīts vesels skaitļa tips, ko izmanto, lai attēlotu objektu lielumu baitos. Tas ir definēts stddef.h galvenē un parasti tiek izmantots, lai attēlotu masīvu, atmiņas bloku un virkņu lielumu.
- Šeit ir programmas piemērs, kas parāda size_t izmantošanu:
C
#include> #include> int> main()> {> >int> array[5] = { 1, 2, 3, 4, 5 };> >size_t> size =>sizeof>(array);> >printf>(>'The size of the array is: %lu
'>, size);> >return> 0;> }> |
javascript brīdinājuma lodziņš
>
>
- šajā programmā izmērs_t tiek izmantots, lai saglabātu masīva lielumu baitos.
- Operatoru sizeof izmanto, lai noteiktu masīva lielumu, kas pēc tam tiek saglabāts lieluma mainīgajā ar veidu size_t. Formāta norādītājs %lu tiek izmantots, lai drukātu lieluma_t vērtību, kas ir neparakstīts garš vesels skaitlis.
- Programmas izvadi Masīva lielums ir: 20, kas ir masīva aizņemto baitu skaits (5 elementi * 4 baiti uz elementu).
Lieluma_t izmantošanas priekšrocības C programmēšanā:
- Pārnesamība : Datu tips size_t ir definēts galvenē stddef.h, kas ir daļa no C standarta bibliotēkas. Izmantojot izmēru_t, varat nodrošināt, ka jūsu kods ir pārnēsājams dažādās platformās un kompilatoros.
- Neparakstīts : size_t ir neparakstīta vesela skaitļa veids, kas nozīmē, ka tas var attēlot lielumus līdz maksimālajam neparakstīto veselo skaitļu lielumam. Tas ir noderīgi, strādājot ar masīviem un atmiņas blokiem, jo izmēri nekad nevar būt negatīvi.
- Performance : size_t parasti tiek ieviests kā ātrs un efektīvs veselu skaitļu tips, un tā izmantošana var nodrošināt labāku veiktspēju nekā citu veselu skaitļu veidu izmantošana.
- Skaidrs nolūks: Izmantojot size_t, jūsu koda lasītājam ir skaidrs, ka jums ir darīšana ar izmēriem, nevis cita veida veseliem skaitļiem. Tas padara kodu vieglāk saprotamu un mazāk pakļauti kļūdām.
- Standartizācija : Izmantojot size_t, jūs ievērojat plaši izmantotu un pieņemtu standartu, kas padara jūsu kodu lasāmāku un uzturējamāku citiem programmētājiem.
- Sadarbspēja : size_t tiek plaši izmantots daudzās bibliotēkās un API, un tā izmantošana savā kodā ļauj vieglāk integrēt ar citu kodu.