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

C의 모든 포인터는 같은 크기를 갖나요? C에서 포인터 크기의 복잡성과 미묘한 차이에 대해 자세히 알아보세요.

Linda Hamilton
풀어 주다: 2024-10-26 09:36:03
원래의
934명이 탐색했습니다.

Do all pointers in C   have the same size? A deep dive into the complexities and nuances of pointer size in C  .

C의 모든 포인터가 같은 크기를 갖는가?

C의 모든 포인터가 같은 크기를 갖는지에 대한 질문은 다음과 같습니다. 토론. 일부 출처에서는 포인터의 크기가 항상 동일하다고 주장하지만 다른 출처에서는 포인터 유형에 따라 크기가 다를 수 있다고 제안합니다.

C 표준에서 보장되는 크기

C 표준

  • void가 char.
  • T const, T 휘발성 및 T const 휘발성은 T와 크기가 같습니다.
  • 동일한 기본 유형을 가진 열거형 유형에 대한 포인터의 크기는 동일합니다.

실용적인 크기 고려 사항

실제로 모든 클래스 유형과 함수 유형에 대한 포인터는 일반적으로 동일한 크기를 갖습니다. 그 이유는 다음과 같습니다.

    컴파일러는 구현을 알지 못한 채 불완전한 클래스 유형에 대한 포인터의 크기를 결정해야 합니다.
  • reinterpret_cast를 사용하면 손실 없이 다양한 함수 포인터 유형 간에 변환할 수 있습니다. 정보.

예외: 분할된 아키텍처

분할된 아키텍처에서는 근거리 포인터와 원거리 포인터의 크기가 다를 수 있습니다.

이유 균일하지 않은 크기를 허용하려면?

C 표준에서는 기술적으로 포인터 유형이 병리학적 사례에 대해 다양한 크기를 가질 수 있도록 허용합니다. 그러나 실제 응용 프로그램에서는 이러한 경우가 드물고 큰 이점이 없습니다.

결론

C의 모든 포인터가 동일한 크기를 가지고 있다고 가정하고 싶지만, 표준에 의해 보장되지는 않습니다. 그러나 대부분의 실제 시나리오에서는 위의 논의에 설명된 대로 모든 포인터의 크기가 동일합니다.

위 내용은 C의 모든 포인터는 같은 크기를 갖나요? C에서 포인터 크기의 복잡성과 미묘한 차이에 대해 자세히 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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