C ve C ++ standartlarının dil uygulamasının tanımlı birçok yönünü bıraktığını biliyorum, çünkü diğer özelliklere sahip bir mimari varsa, bunun için standart uygun bir derleyici yazmak çok zor veya imkansız olurdu.
40 yıl önce herhangi bir bilgisayarın kendine özgü özellikleri olduğunu biliyorum. Ancak, bugün kullanılan herhangi bir mimariyi bilmiyorum:
CHAR_BIT != 8
signed
ikisinin tamamlayıcısı değil (Java'nın bu sorunla karşılaştığını duydum).- Kayan nokta IEEE 754 uyumlu değil (Düzenleme: "IEEE 754 ikili kodlamasında değil" demek istedim).
Soruyorum neden sık sık 's iyi C ++ sabit büyüklükte türleri gibi başka düşük seviyeli yönlerini zorunlu kılmaz o insanlara açıklamak olmasıdır † . İyi çünkü diğer dillerden farklı olarak kodunuzu doğru kullanıldığında taşınabilir hale getirir (Düzenle: makinenin düşük seviyeli yönlerinin emülasyonu gerektirmeden daha fazla mimariye taşınabilir, çünkü örneğin ikisinin işaret + büyüklük mimarisinde tamamlayıcı aritmetiği gibi) . Ama kendimi belirli bir mimariye işaret edemediğim için üzülüyorum.
Yani soru şu: yukarıdaki mimarileri hangi mimariler sergiliyor?
† uint*_t
s isteğe bağlıdır.