Aggiornamento note copyright
[gapil.git] / sources / endian.c
index 3c79ab06a9415468d7f959c57ec917bd0b27a14d..e7dbe0f36957f66afb65f2e9b90b133e67af18b6 100644 (file)
  * Author: S. Piccardi
  * May. 2003
  *
- * $Id: endian.c,v 1.2 2003/08/16 17:36:03 piccardi Exp $
- *
  ***************************************************************/
-#include <stdio.h>
 
-int main(int argc, char *argv[])
+int endian(void)
 {
 /*
  * Variables definition
  */
-    int i, val;
-    char buf[sizeof(int)];
-    char * char_ptr;
-    int * int_ptr;
+    short magic, test;
+    char * ptr;
    
-    val = 0xABCDEF01;      /* endianess magic number */
-    int_ptr = (int *) buf; 
-    *int_ptr = val;
-    char_ptr = (char *) &val;
-    for (i=0; i<sizeof(int); i++) {
-       char_ptr[i] = 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 */ 
 }