>백엔드 개발 >C++ >C의 1정의 규칙은 무엇이며 이를 위반하면 어떻게 되나요?

C의 1정의 규칙은 무엇이며 이를 위반하면 어떻게 되나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-26 03:36:10981검색

What is the One-Definition Rule in C   and What Happens if it's Violated?

C에서 일정의 규칙 디코딩

일정의 규칙은 C에서 코드의 무결성을 보장하고 모호함을 방지합니다. 번역 단위 내에서는 각 변수, 함수, 클래스 유형, 열거 유형 및 템플릿에 대해 단일 정의가 있어야 한다고 규정합니다.

공식 정의

One-Definition Rule의 최종 소스는 C 표준 섹션에 있습니다. 3.2:

  • "번역 단위에는 변수, 함수, 클래스 유형, 열거 유형 또는 템플릿에 대한 정의가 두 개 이상 포함되어서는 안 됩니다."

의미

이 규칙은 단일 번역 단위 내에서 여러 정의를 금지합니다. 그러나 정의가 동일한 한 다른 번역 단위에서 여러 번 발생하는 것이 허용됩니다.

또한 프로그램 내에서 사용되는 비인라인 함수 및 개체의 경우 정확히 하나의 정의가 있어야 합니다. 이 정의는 현재 프로그램, 표준 라이브러리 또는 사용자 정의 라이브러리에 있을 수 있습니다. 해당하는 경우 정의를 암시적으로 생성할 수도 있습니다.

인라인 함수

인라인 함수는 단일 정의 규칙의 예외입니다. 컴파일러에서 해당 구현을 쉽게 사용할 수 있도록 하기 위해 사용되는 모든 번역 단위에서 정의해야 합니다.

위반의 결과

단일 정의 무시 규칙으로 인해 컴파일 오류가 발생하고 예측할 수 없는 프로그램 동작이 발생할 수 있습니다. 예를 들어, 동일한 변수를 여러 개 정의하면 프로그램 실행 중에 충돌이 발생할 수 있습니다.

프로그래머는 단일 정의 규칙을 준수함으로써 이러한 오류를 방지하고 C 코드의 일관성과 신뢰성을 유지할 수 있습니다.

위 내용은 C의 1정의 규칙은 무엇이며 이를 위반하면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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