Added to library function to check endianess
[gapil.git] / sources / endian.c
index be14e09076137cb51a8f2df3a13d12e6b1bfa917..d375d97d334b15c9912a6bc9cef41dd59f7d5b11 100644 (file)
  * Author: S. Piccardi
  * May. 2003
  *
- * $Id: endian.c,v 1.3 2003/08/16 18:11:24 piccardi Exp $
+ * $Id: endian.c,v 1.5 2003/08/16 18:30:21 piccardi Exp $
  *
  ***************************************************************/
-#include <stdio.h>
 
-int main(int argc, char *argv[])
+int endian(void)
 {
 /*
  * Variables definition
  */
-    int i, val;
-    char buf[sizeof(int)];
-    int * int_ptr;
+    short magic, test;
+    char * ptr;
    
-    val = 0xABCDEF01;      /* endianess magic number */
-    int_ptr = (int *) buf;
-    *int_ptr = val;
-    val = 0;
-    for (i=0; i<sizeof(int); i++) {
-       val = (val<<8) + buf[i];
-       printf("i=%d, val=%x\n", i, buf[i]);
-    }
-    printf("Value %x\n", val);
-    return 0;
+    magic = 0xABCD;                     /* endianess magic number */
+    ptr = (char *) &magic;              
+    test = (ptr[1]<<8) + (ptr[0]&0xFF); /* build value byte by byte */
+    return (magic == test);             /* if the same is little endian */ 
 }