공허의 수수께끼: 크기와 그 너머
빈 유형을 나타내는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!