>  기사  >  백엔드 개발  >  C의 C 헤더 : std:: 대 전역 네임스페이스 - 어떤 접근 방식이 더 낫습니까?

C의 C 헤더 : std:: 대 전역 네임스페이스 - 어떤 접근 방식이 더 낫습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-23 07:27:10375검색

C Headers in C  :  std:: vs. Global Namespace - Which Approach is Better?

C에서 C 헤더 탐색: std:: 대 전역 네임스페이스

C에서 C 헤더로 작업할 때 다음과 관련된 질문이 발생합니다. 함수 호출에 선호되는 접근 방식: std:: 네임스페이스 또는 전역 네임스페이스 사용. C는 헤더 이름(예: stdio.h를 cstdio로 변경)을 변경하여 C 헤더 포함을 지원하지만 어떤 접근 방식이 더 적절한지에 대한 의미론적 고려 사항은 남아 있습니다.

C 11 표준은 섹션 D에서 이 문제를 해결합니다. .5 [depr.c.headers], 모든 C 헤더(name.h 이름 형식)는 해당 cname 헤더에 의해 선언된 각 이름이 전역 네임스페이스 내에 배치된 것처럼 동작한다고 명시되어 있습니다. 그러나 이러한 이름이 먼저 std 네임스페이스에서 선언되거나 정의된 다음 전역 네임스페이스에 삽입되는지 여부는 지정되지 않습니다.

예를 들어 헤더는 std 네임스페이스 내에서 선언과 정의를 확실히 제공하는 반면 header는 전역 네임스페이스 내에서 이를 확실히 제공합니다.

이 정보를 바탕으로 cname 헤더를 포함하고 std 네임스페이스의 선언 및 정의를 활용하는 것이 좋습니다. 이는 향후 개정판과의 호환성을 보장하고 표준에 설명된 기본 접근 방식을 따릅니다.

#include <cstdio>

int main() {
    std::printf("Hello world\n");
}

전역 네임스페이스의 선언 및 정의가 포함된 헤더의 경우 이 방식은 더 이상 사용되지 않으며 향후 제거될 수 있습니다.

위 내용은 C의 C 헤더 : std:: 대 전역 네임스페이스 - 어떤 접근 방식이 더 낫습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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