16 HAZİRAN 2009, Salı
Tespit C programında Program aracılığıyla endianness
Programlı bir şekilde ya da büyük-endian veya little-endian bir mimari olup olmadığını tespit etmek var mı? Intel veya PPC sistemi çalıştırmak ve tam olarak aynı kodu (koşullu derleme gibi) kullanan kod yazmak istiyorum.
CEVAP
16 HAZİRAN 2009, Salı
Yöntemi türü punning dayalı sevmem genellikle derleyici tarafından karşı uyardı. Aynen sendikalar ne için var !
int is_big_endian(void)
{
union {
uint32_t i;
char c[4];
} bint = {0x01020304};
return bint.c[0] == 1;
}
Prensip diğerleri tarafından önerilen tip dava eşdeğerdir, ama bu daha net ve C99, doğru olmasını garanti göre. gcc doğrudan işaretçi dökme göre bu tercih eder.
Bu da çok daha iyi tespit endianness derleme zamanında - OS desteği çoklu mimari (yağ ikili Mac os x için örnek), bu iş için hem ppc/i386, oysa çok kolay işler bozulsun yoksa.
Bunu Paylaş:
Eğer Program aracılığıyla app aygıt ve...
Program aracılığıyla KnitR ile R in fi...
Program aracılığıyla bir film Şeridi K...
Program aracılığıyla yayın alıcısı kay...
Nasıl bir uygulama yüklü ise, program ...