Platform independent endinanness check:
#include <stdio.h> union foo { char p[4]; int k; }; int main() { int j; union foo bar; printf("$Id: endianness.c,v 1.1 2006/07/09 17:48:14 stany Exp stany $nChecks endianness of your platformn"); printf("Bigendian platform (ie Mac OS X PPC) would return "abcd"n"); printf("Littleendian platform (ie Linux x86) would return "dcba"n"); printf("Your platform returned "); bar.k = 0x61626364; for(j=0; j<4 ; j++) { printf("%c",bar.p[j]); } printf("n"); return 0; }
Platform dependent tell me everything check:
/* * $Id: cpuid.c,v 1.2 2002/08/03 23:38:39 stany Exp stany $ */ #include <mach-o/arch.h> #include <stdio.h> const char *byte_order_strings[] = { "Unknown", "Little Endian", "Big Endian", }; int main() { const NXArchInfo *p=NXGetLocalArchInfo(); printf("$Id: cpuid.c,v 1.2 2002/08/03 23:38:39 stany Exp stany $ n"); printf("Identifies Darwin CPU typen"); printf("Name: %sn", p->name); printf("Description: %sn", p->description); printf("ByteOrder: %sn", byte_order_strings[p->byteorder]); printf("CPUtype: %dn", p->cputype); printf("CPUSubtype: %dnn", p->cpusubtype); printf("nFor scary explanation of what CPUSubtype and CPUtype stand for, nlook into /usr/include/mach/machine.hnn ppc750t-tG3nppc7400t-tslower G4nppc7450t-tfaster G4nppc970t-tG5n"); return 0;