Ingatlah selalu bahwa 'size' adalah variabel jika tidak ditentukan secara eksplisit, jadi jika Anda mendeklarasikan
int i = 10;
Pada beberapa sistem, ini dapat menghasilkan integer 16-bit oleh kompiler dan pada beberapa lainnya dapat menghasilkan integer 32-bit (atau integer 64-bit pada sistem yang lebih baru).
Di lingkungan yang disematkan, hal ini mungkin berakhir dengan hasil yang aneh (terutama saat menangani I / O yang dipetakan memori atau mungkin mempertimbangkan situasi array sederhana), jadi sangat disarankan untuk menentukan variabel ukuran tetap. Dalam sistem lama, Anda mungkin akan menemukannya
typedef short INT16;
typedef int INT32;
typedef long INT64;
Mulai dari C99, desainer menambahkan file header stdint.h yang pada dasarnya memanfaatkan typedefs serupa.
Pada sistem berbasis windows, Anda mungkin melihat entri di file header stdin.h sebagai
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef unsigned char uint8_t;
Ada lebih dari itu seperti integer lebar minimum atau tipe integer lebar yang tepat, saya pikir itu bukan hal yang buruk untuk menjelajahi stdint.h untuk pemahaman yang lebih baik.
bool_t
- belum pernah mendengar yang itu sebelumnya. Standar C didefinisikan_Bool
sebagai tipe built-in.bool
ditentukan hanya jika Anda#include <stdbool.h>
(sebagai makro yang diperluas ke_Bool
).