char 데이터 유형이 32 비트 대 C의 64 비트에서 저장되거나 표현되는 방식의 차이점은 무엇입니까?char 데이터 유형이 C에서 32 비트 대 64 비트로 저장되거나 표현되는 방식의 차이점은 무엇입니까?
1
A
답변
8
차이는 없습니다.
하나의 char은 1 바이트를 차지합니다.
1 바이트에는 CHAR_BIT 비트가 있습니다.
#include <limits.h>
#include <stdio.h>
int main(void) {
printf("a char occupies 1 byte of %d bits.\n", CHAR_BIT);
return 0;
}
4
한 가지 가능한 차이점은 문자가 32 비트 경계가 아닌 64 비트에 정렬 될 수 있다는 것입니다.
struct {
char a;
char b;
}
32은 2 * 4 바이트와 64 비트 2 * 8 바이트를 차지할 수있다.
편집 - 실제로는 그렇지 않습니다. 정상적인 컴파일러는 바이트 경계의 문자 만 사용하여 구조체를 다시 패킹합니다. 그러나 '긴 c;' 결국 아무 일도 일어나지 않을 것입니다. 그래서 a) sizeof()가 있고 b) c에서 수동 포인터 작업을 수행 할 때주의해야합니다.
관련 문제
- 1. 두 개의 32 비트 정수를 C에서 64 비트로 사용하려면 어떻게해야합니까?
- 2. 64 비트 시스템에서 Asp.NET을 32 비트로 컴파일
- 3. 32 비트 .def 파일을 64 비트로 변환
- 4. 64 비트로 전환하거나 32 비트로 유지 하시겠습니까?
- 5. 32 대 64 비트 GC
- 6. 32 비트/64 비트 OS?
- 7. SHGetFolderPath() 32 비트 대 64 비트
- 8. 64 비트 대 32 비트 Windows 결정
- 9. 32 비트에서 64 비트로 응용 프로그램 이동
- 10. 코드를 32 비트에서 64 비트로 이식합니다.
- 11. 32 비트에서 64 비트로 어셈블리 코드 마이그레이션
- 12. 32 비트에서 64 비트로 이식하는 경우
- 13. 32 비트에서 64 비트로 갈 때의 걸림돌
- 14. MySQL ODBC 32 대 64 비트
- 15. AnyCPU 응용 프로그램을 64 비트 OS에서 32 비트로 실행
- 16. 32 비트 dll에서 64 비트 dll로 변환
- 17. 64 비트 컴퓨터에서 32 비트 DLL 사용
- 18. 최대 JVM 힙 크기 이해 - 32 비트 대 64 비트
- 19. 32 비트 64 비트 호환
- 20. .net 콘솔 응용 프로그램 32 대 64 비트
- 21. 32 비트 대 64 비트 JVM 성능 고려 사항?
- 22. .NET 32 비트 개발자 대 64 비트 제품
- 23. .net InstallUtil 유틸리티 - 32 비트 대 64 비트
- 24. 32 비트 대 64 비트 부동 소수점 성능
- 25. 32 대 64 비트 ... 또는 정확히 '처리 정보'가 정확히 무엇입니까
- 26. 32 비트에서 64 비트로 작성된 C 소스 코드
- 27. 64 비트 응용 프로그램에서 32 바이너리 호출
- 28. 64 비트 응용 프로그램에서 32 비트 공유 라이브러리를로드 하시겠습니까?
- 29. 64 비트 OS/32 비트 프로세스
- 30. Office의 32 비트 DLL 64 비트
감사합니다. 확실히 확인하고 싶었습니다. – pxl
char가 적어도 8 비트 폭으로 보장된다고 생각했습니다. 컴파일러는 원하는 경우 8 비트 이상을 사용할 수 있습니다. 이론상 64 비트 x86 컴파일러는 32 비트 x86 컴파일러와 다른 표현을 선택할 수 있습니다. –
나는 이것이 의도 인 동안 동일한 표현을 지키는 어딘가를 읽었다. 그러나 동일한 코드가 64 또는 32 비트로 컴파일 될 때 저장된 방법으로 인해 문제가 발생할 수 있습니다. 그게 내가 지금 가지고있는 문제입니다, 어떻게 내가 제대로 (일반적으로 sizeall (sizeof (char *) * 5)) 일반적인 경우에 크기 조정을 처리하는지 확인해야합니까 (ie future proof it 128 비트 이상). – pxl