우리가 사용하고 있는 일반 PC는 대부분 리틀 엔디안 방식이다.
하지만 내가 만든 프로그램을 빅 엔디안 방식을 쓰는 다른 하드웨어에서 사용한다면? 충돌 가능성이 있다.
htons()함수의 경우 바이트를 빅 엔디안으로 바꾸어주는 것이다. 따라서 이미 빅 엔디안인 시스템에서는 굳이 바이트를 바꾸어 줄 필요가 없다.
그렇다면, 내 시스템이 빅 엔디안인지, 리틀 엔디안인지 확인하는 방법은 무엇일까?
cpp에서는 다음과 같이 상수가 선언되어있다..
#define BYTE_ORDER 1234 // 클러스터의 PC의 경우 x86 인텔 프로세서를 사용하기 때문에 리틀 엔디안이다.
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234
#define PDP_ENDIAN 3412 // PDP_ENDIAN은 미들 엔디안이라고 하는데, 잘 모르겠다 웬만하면 잘 안쓸듯
std::cout << "BYTE_ORDER : " << BYTE_ORDER << std::endl;
std::cout << "BIG_ENDIAN : " << BIG_ENDIAN << std::endl;
std::cout << "LITTLE_ENDIAN : " << LITTLE_ENDIAN << std::endl;
std::cout << "PDP_ENDIAN : " << PDP_ENDIAN << std::endl;
