"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 C 함수를 호출할 때 `std::` 또는 전역 네임스페이스를 사용해야 합니까?

C++에서 C 함수를 호출할 때 `std::` 또는 전역 네임스페이스를 사용해야 합니까?

2024년 11월 24일에 게시됨
검색:573

Should I Use `std::` or the Global Namespace When Calling C Functions in C  ?

C의 C 헤더: 네임스페이스 고려 사항

C 프로그래밍 영역에서 C 헤더를 포함하면 의미론적 질문이 자주 제기됩니다. 함수는 std:: 네임스페이스 또는 전역에서 호출되어야 합니다. 네임스페이스?

Background

C는 C의 하위 집합이므로 약간만 수정하면 많은 C 함수와 헤더를 C에서 활용할 수 있습니다. 예를 들어, stdio.h는 cstdio가 되고 stdlib.h는 cstdlib가 됩니다.

질문

C에서 C 헤더로 작업할 때 함수 사용 사이에서 선택이 발생합니다. std:: 또는 전역 네임스페이스에서. 예를 들어, printf("Hello world!"); 그리고 std::printf("안녕하세요!"); 동일한 출력을 생성합니다.

답변

C 11 표준에 따르면 "name.h"가 있는 C 표준 라이브러리 헤더는 포함된 이름이 처음 배치되는 것처럼 동작합니다. std:: 네임스페이스에 있습니다. 그러나 이러한 이름이 std::의 전역 네임스페이스 내에서 먼저 선언되거나 정의된 다음 전역 네임스페이스 범위에 주입되는지 여부는 지정되지 않습니다.

따라서 "cname" 헤더를 포함하는 것이 좋습니다(예: ) std:: 네임스페이스의 선언과 정의를 활용합니다. "name.h" 헤더가 필요한 경우 전역 네임스페이스의 선언 및 정의를 사용하는 것이 좋습니다.

결론

요약하자면, 최적의 가독성과 미래를 위해 -교정, C에서 C 헤더로 작업할 때 std:: 네임스페이스를 사용하는 것이 좋습니다. "cname" 헤더와 std:: 네임스페이스는 포함된 기능의 범위를 명시적이고 명확하게 표시하여 코드 구성과 명확성을 향상시킵니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3