Tipe Data size_t pada Bahasa C
- <stddef.h>
- <stdio.h>
- <stdlib.h>
- <string.h>
- <time.h>
- <wchar.h>
Adalah tipe data yang digunakan untuk merepresentasikan ukuran dari objek dalam satuan byte dan karena itu tipe data tersebut digunakan sebagai tipe return oleh operator sizeof. Tipe data tersebut menjamin untuk dapat mengandung ukuran data yang cukup besar dari object besar yang dapat ditangani oleh sistem host. Pada dasarnya ukuran maksimun yang diijinkan adalah tergantung dari kompilator; jika kompilator adalah 32bit maka secara sederhana dibuat typedef untuk unsigned int tetapi jika kompilator adalah 64bit maka typedef adalah untuk unsigned long long. Tipe data size_t tidak pernah bernilai negatif.
Terdapat banyak library fungsi C seperti malloc, memcpy, dan strlen argumen dan tipe return-nya dideklarasikan sebagai size_t. Contoh:
// Deklarasi dari berbagai fungsi standar library.
// Berikut adalah argumen dari 'n' yang mengacu pada
void *malloc(size_t n);
// Ketika melakukan copy 'n' bytes dari 's2' ke 's1'
// n harus berada dalam posisi integer yang tidak negatif.
void *memcpy(void *s1, void const *s2, size_t n);
// strlen() menggunakan size_t karena panjang string setidaknya selalu 0.
size_t strlen(char const *s);
size_t atau tipe unsigned apapun mungkin lebih sering digunakan sebagai variabel looping yang umumnya lebih baik atau sama dengan 0.
// Program bahasa C untuk mende-
// monstrasikan bahwa
// size_t ataupun
// tipe data unsigned int
// apapun harus digunakan
// hati-hati pada
// bagian looping
#include<stdio.h>
#define N 10
int main()
{
int a[N];
// Berjalan normal
for (size_t n=0;n<N;++n) {
a[n] = n;
}
// Namun perulangan berkeba-
// likan sifatnya sedikit
// mengelabui untuk tipe da-
// ta unsigned yang dapat
// menyebabkan terjadi
// infinite loop
for (size_t n = N-1; n >= 0; --n)
printf("%d ", a[n]);
}
Apa yang dimaksud dengan size_t pada bahasa C?
BalasHapusTipe data size_t adalah tipe data integral unsigned. Tipe data ini mewakili ukuran objek dalam ukuran byte dan dikembalikan oleh operator sizeof. Tipe data ini digunakan untuk melakukan pengindeksan dan penghitungan nilai array, dimana nilai tersebut tidak akan pernah bisa bernilai negatif.
Hapussize_t adalah tipe data bilangan bulat unsigned dasar dari bahasa pemrograman C/C++. Tipe data ini adalah jenis hasil yang dikembalikan dari operator sizeof. Ukuran tipe data dapat dipilih sehingg dapat menyimpan ukuran maksimum dari array yang secara teori dimungkinkan dari tipe data apapun. Pada sistem 32bit, size_t akan mengambil ukuran 32bit, sedangkan pada sistem 64bit, size_t akan mengambil ukuran sebesar 64bit.
BalasHapusApa perbedaan antara tipe data int dan size_t pada bahasa C?
BalasHapusTipe data int adalah tipe data bilangan bulat bertanda atau signed, yang mewakili nilai integral positif dan integral negatif. Sedangkan size_t adalah bilangan bulat tak bertanda atau unsigned, yang tidak mendukung nilai dari integral negatif.
Hapus