#include <stdio.h>
#include <string.h>
Go to the source code of this file.
◆ main()
Definition at line 23 of file hwtest.cxx.
25{
27 unsigned char *p;
28 float f;
30
32 printf(
"sizeof(int) = %d\n", (
int)
sizeof(
int));
33 printf(
"sizeof(float) = %d\n", (
int)
sizeof(
float));
34 printf(
"sizeof(double) = %d\n", (
int)
sizeof(
double));
35 printf(
"sizeof(long int) = %d\n", (
int)
sizeof(
long int));
36 printf(
"sizeof(long double) = %d\n", (
int)
sizeof(
long double));
37 printf(
"sizeof(char *) = %d\n", (
int)
sizeof(p));
38 if (sizeof(p) == 2)
39 printf(
"...this looks like a 16-bit OS\n\n");
40 else if (sizeof(p) == 4)
41 printf(
"...this looks like a 32-bit OS\n\n");
42 else if (sizeof(p) == 8)
43 printf(
"...this looks like a 64-bit OS\n\n");
44
47 p = (
unsigned char *) &
dummy;
48 printf(
"0x12345678 = %02X %02X %02X %02X\n", p[0], p[1], p[2], p[3]);
49 if (*((
unsigned char *) &
dummy) == 0x78)
50 printf(
"...this looks like a LITTLE ENDIAN machine\n\n");
51 else
52 printf(
"...this looks like a BIG ENDIAN machine\n\n");
53
54 printf(
"Floating point coding:\n");
56 p = (unsigned char *) &f;
58 for (
unsigned i = 0;
i <
sizeof(
float);
i++)
62 p = (
unsigned char *) &
d;
64 for (
unsigned i = 0;
i <
sizeof(
double);
i++)
67
70 if ((
dummy & 0xFF) == 0x19 &&
71 ((
dummy >> 8) & 0xFF) == 0x04 &&
72 ((
dummy >> 16) & 0xFF) == 0x9E && ((
dummy >> 24) & 0xFF) == 0x3F)
73 printf(
"...this looks like IEEE float format\n");
74 else if ((
dummy & 0xFF) == 0x9E &&
75 ((
dummy >> 8) & 0xFF) == 0x40 &&
76 ((
dummy >> 16) & 0xFF) == 0x19 && ((
dummy >> 24) & 0xFF) == 0x04)
77 printf(
"...this looks like VAX float format\n");
78
81 if ((
dummy & 0xFF) == 0x8D &&
82 ((
dummy >> 8) & 0xFF) == 0x97 &&
83 ((
dummy >> 16) & 0xFF) == 0x6E && ((
dummy >> 24) & 0xFF) == 0x12)
84 printf(
"...this looks like IEEE double float format (little endian)\n\n");
85 else if ((
dummy & 0xFF) == 0x83 &&
86 ((
dummy >> 8) & 0xFF) == 0xC0 &&
87 ((
dummy >> 16) & 0xFF) == 0xF3 && ((
dummy >> 24) & 0xFF) == 0x3F)
88 printf(
"...this looks like IEEE double float format (big endian)\n\n");
89 else if ((
dummy & 0xFF) == 0x13 &&
90 ((
dummy >> 8) & 0xFF) == 0x40 &&
91 ((
dummy >> 16) & 0xFF) == 0x83 && ((
dummy >> 24) & 0xFF) == 0xC0)
92 printf(
"...this looks like VAX G double format\n\n");
93 else if ((
dummy & 0xFF) == 0x9E &&
94 ((
dummy >> 8) & 0xFF) == 0x40 &&
95 ((
dummy >> 16) & 0xFF) == 0x18 && ((
dummy >> 24) & 0xFF) == 0x04)
96 printf(
"...this looks like VAX D double format\n\n");
97
98
100 printf(
"Structure members are %d-byte aligned\n\n",
i);
101
102 return 1;
103}
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
◆ [struct]
struct { ... } test_align |