-
Notifications
You must be signed in to change notification settings - Fork 328
/
endian.c
34 lines (31 loc) · 882 Bytes
/
endian.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*************************************************************************************/
// Since size of character is 1 byte when the character pointer is de-referenced
// it will contain only first byte of integer.
// If machine is little endian then *c will be 1 (because last byte is stored first)
// if machine is big endian then *c will be 0.
// higher memory
// ----->
// +----+----+----+----+
// |0x01|0x00|0x00|0x00|
// +----+----+----+----+
// c
// |
// &i
// +----+----+----+----+
// |0x00|0x00|0x00|0x01|
// +----+----+----+----+
// c
// |
// &i
/*************************************************************************************/
#include <stdio.h>
int main()
{
unsigned int i = 1;
char *c = (char*)&i;
if (*c)
printf("Little endian\n");
else
printf("Big endian\n");
return 0;
}