Pertanyaan Apa perbedaan antara UInt8 dan uint8_t


Apa perbedaan antara UInt8 dan uint8_t, atau UInt16 dan unit16_t?

Apa yang dimaksud dengan _t berarti?


32
2018-06-05 10:24


asal


Jawaban:


Di C99 tersedia tipe bilangan bulat dasar (yang tanpa _t) dianggap tidak cukup, karena ukuran aktualnya dapat bervariasi di berbagai sistem.

Jadi, standar C99 mencakup definisi dari beberapa tipe integer baru untuk meningkatkan portabilitas program. Jenis-jenis baru sangat berguna dalam lingkungan yang tertanam.

Semua tipe baru tersebut diselingi dengan _t dan dijamin untuk didefinisikan secara seragam di semua sistem.

Untuk info lebih lanjut, lihat bagian jenis integer tetap-lebar dari artikel wikipedia di Stdint.


32
2018-06-05 10:43



biasanya mereka digunakan sebagai tipe data typedef. "_t" adalah tipe data typedef. kami memberikan nama tersebut agar dapat digunakan dan dibaca dengan mudah di seluruh file atau basis kode besar.

* UInt8 dan uint8_t - Char *

typedef unit8_t unsigned char

* UInt16 dan unit16_t *

typedef unit16_t unsigned int (pada kompiler 16 bit)


0
2018-06-05 10:48



Perbedaan utamanya adalah bahwa uintX_t tipe adalah standar C yang ditentukan oleh C99 dan kemudian sementara UIntX tidak. Ini berimplikasi pada seberapa portabel kodenya. Kode menggunakan uintX_t jenis dapat dikompilasi pada setiap kompiler C standar tanpa ketergantungan lainnya. Kode yang menggunakan UIntX di sisi lain, harus menentukan jenis-jenis itu sendiri, atau bergantung pada beberapa pustaka atau kerangka kerja yang melakukannya.

Saya tidak berpikir Objective-C seperti mendefinisikan jenis integer ekstra, tetapi mungkin saja bahwa kerangka Anda (Coacoa, OpenStep?) Melakukannya. Jika kode Anda tidak masuk akal di luar kerangka kerja, gunakan apa yang idiomatis dalam konteks kerangka kerja. Jika tidak mencoba untuk tetap pada tipe standar.


0
2018-06-05 11:03