endian_check.c
author bjarni
Tue, 28 Dec 2004 17:18:46 +0000
changeset 819 c425b7e22f6a
parent 200 03b8104d1479
child 1692 0b52df38cabc
permissions -rw-r--r--
(svn r1290) Added type to typedef struct Engine and filled in the same data as in type in vehicle
it was kind of lame that you should use AircraftVehInfo(), ShipVehInfo() etc. if you wanted to know what type the engine is
#include <stdio.h>

// This pretty simple file checks if the system is LITTLE_ENDIAN or BIG_ENDIAN
//  it does that by putting a 1 and a 0 in an array, and read it out as one
//  number. If it is 1, it is LITTLE_ENDIAN, if it is 256, it is BIG_ENDIAN
//
// After that it outputs the contents of an include files (endian.h)
//  that says or TTD_LITTLE_ENDIAN, or TTD_BIG_ENDIAN. Makefile takes
//  care of the real writing to the file.

int main () {
  unsigned char EndianTest[2] = { 1, 0 };
  printf("#ifndef ENDIAN_H\n#define ENDIAN_H\n");
  if( *(short *) EndianTest == 1 )
    printf("#define TTD_LITTLE_ENDIAN\n");
  else
    printf("#define TTD_BIG_ENDIAN\n");

  printf("#endif\n");

  return 0;
}