그래서 새롭고 흥미로운 질문을 대답 해 주셨습니다. 그래서 저는 파일 압축기를 쓰고 있습니다. 기본적으로 타르 (tar)입니다. 솔직히 말해서, 코드는 꽤 잘 진행되고있는 것 같습니다. 지금 막 붙어있는 것은 프로젝트에 필요한 추가 기능입니다. 리틀 엔디 언 머신에서 만든 것처럼 바이너리 파일을 생성 할 수 있어야합니다. 나에 대한 비트 교환을 수행해야하는 코드에 포함시킨 헤더 파일을 만들었습니다. 따라서 다음과 같습니다 :리틀 엔디안 매크로
#ifndef MYLIB_H
#define MYLIB_H
#define BITS_PER_BYTE 8
#define true 1
#define false 0
typedef unsigned char uchar;
typedef unsigned long ulong;
typedef unsigned int uint;
typedef unsigned short ushort;
#ifdef LITTLE_ENDIAN
#define SwapULong(val) (val << 24 | (val << 8 & 0xFF0000) | (val >> 8 & 0xFF00) | val >> 24 & 0xFF)
#define SwapUShort(val) (val << BITS_PER_BYTE | val >> BITS_PER_BYTE)
#else
#define SwapULong(val) (val)
#define SwapUShort(val) (val)
#endif
#endif
그래서 gcc로 컴파일하고 프로그램을 실행할 때 오류가 없습니다. 출력의 헥스 덤프 -C를 할 때 출력은 여전히 빅 엔디안 순서입니다!
나는 다음 -E 플래그로 컴파일 시도하고 나는
./compress line #: typedef: command not found
이 터미널 출력의 마지막 라인까지
./compress line #: __extension__ : command not found
이
을 보였다가 된 것을 말하는 라인의 무리를 가지고./compress line 86: syntax error near unexpected '}' token
./compress line 86: __extension__ typedef struct { int __val[2]; } __fsid_t;
어떤 아이디어가 나를 위해이 원인이 될 수 있습니까?
도움을 주시면 감사하겠습니다.
줄 86은 무엇입니까? 질문에 주변 선을 추가 할 수 있습니까? –