20 Ocak 2010, ÇARŞAMBA
C tanımı büyük veya küçük indian indian makine belirlemek için Makro?
Bir satır bir makro tanımı makinenin endianness belirlemek için vardır. Aşağıdaki kodu kullanıyorum ama makro dönüştürme çok uzun olacaktı.
unsigned char test_endian( void )
{
int test_var = 1;
unsigned char test_endian* = (unsigned char*)&test_var;
return (test_endian[0] == NULL);
}
CEVAP
20 Ocak 2010, ÇARŞAMBA
Kod rasgele bayt emir, bir dosya order32.h
denilen içine koymak için hazır destek:
#ifndef ORDER32_H
#define ORDER32_H
#include <limits.h>
#include <stdint.h>
#if CHAR_BIT != 8
#error "unsupported char size"
#endif
enum
{
O32_LITTLE_ENDIAN = 0x03020100ul,
O32_BIG_ENDIAN = 0x00010203ul,
O32_PDP_ENDIAN = 0x01000302ul
};
static const union { unsigned char bytes[4]; uint32_t value; } o32_host_order =
{ { 0, 1, 2, 3 } };
#define O32_HOST_ORDER (o32_host_order.value)
#endif
Küçük üzerinden indian sistemleri kontrol eder
O32_HOST_ORDER == O32_LITTLE_ENDIAN
Bunu Paylaş:
Nasıl aygıtı belirlemek için ekran boy...
Yüce Metin küçük (veya büyük) için seç...
Nasıl değişken olup olmadığını belirle...
Nasıl belirli bir Linux 32 bit veya 64...
Nasıl bir web sayfası doğrudan tarayıc...