#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
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