Pertanyaan Apakah jenis-jenis seperti uint32, int32, uint64, int64 didefinisikan dalam header stdlib?


Saya sering melihat kode sumber menggunakan jenis seperti uint32, uint64 dan saya ingin tahu apakah mereka harus didefinisikan oleh programmer dalam kode aplikasi atau jika mereka didefinisikan dalam header lib standar.

Apa cara terbaik untuk memiliki jenis ini pada kode sumber aplikasi saya?


76
2018-05-16 04:45


asal


Jawaban:


C99 stdint.h mendefinisikan ini:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

Dan, jika arsitektur mendukungnya:

  • int64_t
  • uint64_t

Ada berbagai typedefs lain di stdint.h demikian juga.

Jika Anda terjebak tanpa lingkungan C99 maka Anda mungkin harus menyediakan typedef Anda sendiri dan menggunakan C99 yang tetap.

Itu uint32 dan uint64 (yaitu tanpa _t akhiran) mungkin spesifik aplikasi.


110
2018-05-16 05:14



Jenis integer tersebut semuanya didefinisikan dalam stdint.h


10
2018-05-16 04:47



Jika Anda menggunakan C99 cukup sertakan stdint.h. BTW, tipe 64bit ada jika prosesor mendukungnya.


2
2018-05-16 06:19



Penanya benar-benar bertanya tentang int16 (dll) daripada (jelek) int16_t (dll).

Tidak ada header standar - atau pun di Linux / usr / include / folder yang mendefinisikannya tanpa "_t".


-1
2018-04-06 14:05