> 백엔드 개발 > C++ > C One-Definition 규칙은 무엇이며 프로그램 일관성을 어떻게 보장합니까?

C One-Definition 규칙은 무엇이며 프로그램 일관성을 어떻게 보장합니까?

Barbara Streisand
풀어 주다: 2025-01-06 01:32:39
원래의
932명이 탐색했습니다.

What is the C   One-Definition Rule and How Does it Ensure Program Consistency?

C에서 단정의 규칙의 특성

C에서 단정의 규칙은 다중 정의 규칙을 제한하여 프로그램의 동작을 제어합니다. 번역 단위 내의 특정 엔터티에 대한 정의. 이 규칙의 세부 사항을 자세히 살펴보겠습니다.

공식 정의

The C 프로그래밍 언어, 3판, P. 9.2.3의 참조 너머 규칙의 공식 정의는 섹션 내의 C 표준에서 찾을 수 있습니다. 3.2:

"No translation unit shall contain more than one definition of any variable, function, class type, enumeration type or template."
로그인 후 복사

게다가 표준은 프로그램에 사용되는 모든 비인라인 함수나 객체가 정확히 하나의 정의를 가져야 함을 강조합니다. 인라인 함수를 사용하는 경우 참조되는 모든 번역 단위에서 정의해야 합니다.

의미

이 규칙은 다음을 보장합니다.

  • 일관성: 여러 정의로 인해 불일치가 발생할 수 있습니다. 프로그램의 행동. 단일 정의 규칙은 이러한 충돌을 방지합니다.
  • 고유한 엔터티 ID: 각 변수, 함수, 클래스 유형 및 기타 정의된 엔터티는 고유한 ID를 가지므로 프로그램 전체에서 일관된 동작을 보장합니다.
  • 링커 호환성: 여러 정의가 존재하는 경우 링커는 참조를 올바르게 확인할 수 없습니다. 이 규칙은 원활한 연결 및 컴파일을 허용합니다.

예외

다음에는 단일 정의 규칙이 적용되지 않습니다.

  • 사용되는 모든 번역 단위에서 정의되어야 하는 인라인 함수 in.
  • 암시적으로 정의된 함수(C 표준의 섹션 12.1, 12.4 및 12.8 참조).

위 내용은 C One-Definition 규칙은 무엇이며 프로그램 일관성을 어떻게 보장합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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