> 백엔드 개발 > C++ > 본문

C에서 `void`의 크기는 얼마입니까?

Susan Sarandon
풀어 주다: 2024-11-19 02:09:02
원래의
627명이 탐색했습니다.

What Is the Size of `void` in C?

공허의 수수께끼: 크기와 그 너머

빈 유형을 나타내는 void의 개념은 종종 프로그래머들 사이에서 호기심을 불러일으킵니다. 근본적인 질문이 생깁니다: 공극의 크기는 무엇입니까?

공공의 본질 이해

공공의 크기를 결정하려는 시도는 우리에게 중요한 깨달음에 이르게 합니다: 공허 크기가 없습니다. 다른 데이터 유형과 마찬가지로 공간을 점유하는 본질적인 특성이 부족합니다. 이러한 본질적인 공백으로 인해 변수로 선언할 수 없습니다.

다음 예를 고려하십시오.

void n; // Compilation error
로그인 후 복사

GCC의 예기치 않은 동작

놀랍게도 GNU C 컴파일러는 (GCC)는 sizeof(void)를 사용할 때 크기 1을 반환합니다. 이는 공허에는 크기가 없다는 개념과 모순되는 것 같습니다. 그러나 이 동작은 void의 특성을 실제로 반영한 것이 아니라 GCC에만 해당되는 특이한 현상입니다.

Void 포인터 및 메모리 할당

특수 유형의 Void 포인터 void *는 기본 데이터 유형에 관계없이 주소를 저장하는 데 일반적으로 사용됩니다. malloc(sizeof(void))으로 메모리를 할당하면 실제 메모리가 할당되지 않습니다. 대신 null 포인터가 반환됩니다.

Incrementing Void Pointers

예제에서 포인터 p는 null 주소를 나타냅니다. p(p)를 증가시키면 일반적으로 그것이 가리키는 데이터 유형의 크기만큼 값이 증가합니다. 그러나 p는 void 포인터이므로 증가 연산은 정의되지 않으며 컴파일러마다 다릅니다.

위 내용은 C에서 `void`의 크기는 얼마입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿