> 백엔드 개발 > C++ > C에서 \'void\'의 크기는 얼마입니까?

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

Mary-Kate Olsen
풀어 주다: 2024-11-19 17:25:03
원래의
841명이 탐색했습니다.

What is the Size of

질문: "void"의 정의되지 않은 크기 이해

C 프로그래밍에서 "void" 키워드는 유형이 없음을 나타냅니다. 이는 "void"의 크기가 무엇인지 묻는 질문을 제기합니다.

답변:

"void" 유형은 C에서 정의된 크기가 없습니다. 개체 또는 포인터에 대한 유효한 유형이므로 이를 사용하려고 하면 컴파일 오류가 발생합니다. 특히

void n;
로그인 후 복사

문은 허용되지 않는 void 유형의 변수를 선언하려고 시도하므로 유효하지 않습니다.

확장: "를 사용한 할당 및 포인터 산술 void" 포인터

"void"는 크기가 없지만 포인터의 유형으로 사용할 수 있습니다. 그러나 이러한 포인터는 데이터의 특정 유형이나 크기를 가리키지 않습니다.

void *p = malloc(sizeof(void));
로그인 후 복사

문은 "void"에 메모리를 할당하려고 하기 때문에 컴파일 시간 오류가 발생합니다. " 유형은 무의미합니다. malloc 함수에는 메모리를 할당하기 위한 유효한 데이터 유형이 필요합니다.

GCC에서 sizeof(void) 표현식은 놀랍게도 1로 평가됩니다. 이는 "void"에 크기를 할당하는 것처럼 보일 수 있지만 이는 단지 의존해서는 안 되는 구현 세부 사항입니다.

또한 "void" 포인터의 포인터 산술 p는 정의되지 않았으므로 사용해서는 안 됩니다. p가 가리키는 데이터의 유형을 알 수 없기 때문에 포인터가 증가한다는 것이 무엇을 의미하는지 판단할 수 없기 때문입니다.

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

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