나는 프로그램과 같은 * 숯불 캐스팅하는 가장 일반적인 방법은 endianity 테스트하는 것을 알고 :확인 엔디 언 프로그래밍
short temp = 0x1234;
char* tempChar = (char*)&temp;
를하지만이 같은 * 짧은에 캐스팅하여 수행 할 수 있습니다 :
unsigned char test[2] = {1,0};
if (*(short *)test == 1)
//Little-Endian
else
//Big-Endian
리틀 엔디안 규칙 (오른쪽에서 왼쪽으로 : "0"이 낮은 주소, "1"이 상위)을 사용하여 메모리에서 "테스트"버퍼가 메모리에 저장됩니다. "temp"var와 같은 경우?
그리고 더 일반적으로 문자열이있는 경우 문자 탭 [] = "abcdef"; 메모리에 어떻게 저장 되나요? 그것은 "fedcba"와 같이 반대가 될 것입니까?
Thx. 사전에 :-)
추신.
프로그램의 데이터가 시스템 메모리에서 정확히 어떻게 보이는지 확인할 방법이 있습니까? 리얼 엔디안에서 "실생활"의 바이트 스왑을보고 싶습니다.
가능한 중복 http : // stackoverflow.com/questions/1001307/detection-endianness- 프로그래밍 방식의 C 프로그램 –
PS의 경우 디버거를 사용하여 정수 유형의 변수 주소에서 메모리를 검사하십시오. 비대칭 값이있는 경우 빅 엔디 언 시스템과 리틀 엔디 언 시스템을 비교하면 메모리 내용을보고 차이점을 확인할 수 있어야합니다. – jxh
1) 두 번째 예제는 정렬 오류로 인해 올바르게 엔디안 머신에서도 실패 할 수 있습니다. 2) 세계에는 2 개 이상의 엔디안이 있습니다. –