Saya tahu bahwa standar C dan C ++ meninggalkan banyak aspek implementasi bahasa yang ditentukan hanya karena jika ada arsitektur dengan karakteristik lain, akan sangat sulit atau tidak mungkin untuk menulis kompiler yang sesuai standar untuk itu.
Saya tahu bahwa 40 tahun yang lalu komputer mana pun memiliki spesifikasi uniknya sendiri. Namun, saya tidak tahu ada arsitektur yang digunakan saat ini di mana:
CHAR_BIT != 8
signed
bukan pelengkap dua (saya mendengar Jawa punya masalah dengan yang satu ini).- Floating point tidak sesuai dengan IEEE 754 (Edit: Maksud saya "tidak dalam pengkodean biner IEEE 754").
Alasan saya bertanya adalah bahwa saya sering menjelaskan kepada orang-orang bahwa ada baiknya C ++ tidak mengamanatkan aspek tingkat rendah lainnya seperti tipe berukuran tetap † . Ini bagus karena tidak seperti 'bahasa lain' itu membuat kode Anda portabel ketika digunakan dengan benar (Edit: karena dapat porting ke lebih banyak arsitektur tanpa memerlukan emulasi aspek tingkat rendah dari mesin, seperti misalnya aritmatika komplemen dua pada arsitektur tanda + magnitude) . Tetapi saya merasa tidak enak karena saya sendiri tidak dapat menunjuk ke arsitektur tertentu.
Jadi pertanyaannya adalah: arsitektur apa yang memperlihatkan properti di atas?
Ini uint*_t
opsional.