C에서 C 헤더 사용: 네임스페이스 또는 전역 범위?
C에서는 헤더 파일을 수정하여 C 함수 및 헤더에 액세스할 수 있습니다. 이름(예: stdio.h에서 cstdio로, stdlib.h에서 cstdlib로). 그러나 C 코드에서 이러한 헤더에 대해 std:: 네임스페이스 또는 전역 네임스페이스의 함수를 사용할지 여부에 대한 의문이 제기됩니다.
C의 네임스페이스와 전역 범위
C 11 표준에 따르면 확장자가 ".h"인 모든 C 헤더는 해당 이름이 전역 네임스페이스와 std 네임스페이스 모두에 배치된 것처럼 동작합니다. 이러한 이름이 std:: 네임스페이스에서 처음 선언되어 전역 네임스페이스에 삽입되는지, 아니면 그 반대인지는 아직 지정되지 않았습니다.
선호되는 접근 방식
향후 호환성을 보장하기 위해 C 개정을 수정하고 잠재적인 모호성을 제거하려면 "cname" 헤더를 사용하고 std:: 네임스페이스 내에서 함수를 선언 및 정의하는 것이 좋습니다. 이전 ".h" 헤더 사용은 더 이상 사용되지 않으며 향후 개정판에서 제거되도록 식별되었습니다.
예제 코드
다음 코드를 선호하세요. snippet:
#include <cstdio> int main() { std::printf("Hello world\n"); }
over:
#include <stdio.h> int main() { printf("Hello world\n"); }
결론
C에서는 std::와 전역 네임스페이스를 모두 사용할 수 있습니다. C의 함수와 헤더에서 선호되는 접근 방식은 "cname" 헤더를 포함하고 다음의 선언과 정의를 사용하는 것입니다. 향후 C 개정판과의 일관성을 유지하고 잠재적인 문제를 방지하기 위한 std:: 네임스페이스.
위 내용은 C 함수와 헤더는 `std::` 네임스페이스에서 사용해야 할까요, 아니면 C의 전역 네임스페이스에서 사용해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!