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

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

Linda Hamilton
Linda Hamilton원래의
2024-10-26 09:36:03935검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.