#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[]) {
FILE* fp;
/* Our example data structure */
struct {
char one[4];
int two;
char three[4];
} data;
/* Fill our structure with data */
strcpy (data.one, "foo");
data.two = 0x01234567;
strcpy (data.three, "bar");
/* Write it to a file */
fp = fopen ("output", "wb");
if (fp) {
fwrite (&data, sizeof (data), 1, fp);
fclose (fp);
}
}
생성된 output 의 hexdump 를 뜨면
# od -x output
0000000 666f 6f00 0123 4567 6261 7200
0000014
4567
0123 순서로 나오면 little endian
0123 4567 순서로 나오면 big endian
* 나만의 endian 구별법.
값을 메모리에 저장할 때 큰자리수부터 작은자리 순서로 저장할 경우,
가장 작은 자리에 해당하는 값 부분이 end 라는 의미로 보면.
big end 의 경우 end 에 해당하는 값이 저장된 메모리 번지수가 제일 크다는 의미로 생각하고
little end 의 경우 end 에 해당하는 값이 저장된 메모리 번지수가 제일 크지 않다는 의미로 생각하면
헷갈리지 않고 구별할 수 있다.
'programming' 카테고리의 다른 글
eclipse에서 VI 로 JAVA 코딩하기 (0) | 2010.05.21 |
---|---|
rpcgen (0) | 2010.04.08 |
IRIX® Network Programming Guide (0) | 2010.04.08 |
mod_throttle 3.1.2 - limit limit. (0) | 2010.02.19 |
Kdevelop - Doxygen (0) | 2010.02.04 |
Latest update: 2010. 3. 31. 09:48