역사적으로, C++에 사용되는 첫 번째 확장 정확히 C.이 빌드 시스템은 쉽게 C++와 C 파일을 구별하는 것을 허용하지 않았다 실질적인 문제, 특히 .c
의 원인에 대해 같은 .c
및 .h
했다.
C++가 개발 된 Unix는 대소 문자를 구분하는 파일 시스템을 사용합니다. 따라서 일부는 C++ 파일에 .C
을 사용했습니다. 기타 .c++
, .cc
및 .cxx
을 사용했습니다. .C
및 .c++
은 다른 파일 시스템에서는 사용할 수 없으며 사용이 급격히 줄어든다는 문제점이 있습니다. DOS 및 Windows C++ 컴파일러는 .cpp
을 사용하는 경향이 있었으며 일부는 불가능하지는 않더라도 선택을 어렵게 만들었습니다. 이식성에 대한 고려는 MS-Windows 외부에서도 가장 공통적 인 선택이었습니다.
헤더는 대응 .H
, .h++
, .hh
, .hxx
및 .hpp
사용했다. 그러나 주 파일과 달리 .h
은 헤더가 C 컨텍스트에 포함될 수 있는지 여부를 알 수없는 단점이 있더라도 C++에 대한 대중적인 선택으로 남아 있습니다. 표준 헤더에는 확장이 전혀 없습니다.
또한 일부는 인라인 정의와 .txx
, 템플릿 정의에 대한 .tpp
및 .tpl
를 제공하는 헤더 .ii
, .ixx
, .ipp
, .inl
을 사용하고 있습니다. 그것들은 정의를 제공하는 헤더에 포함되거나 필요할 때 문맥에서 수동으로 포함됩니다.
일반적으로 컴파일러와 도구는 사용되는 확장명을 신경 쓰지 않지만 C++과 관련된 확장명을 사용하면 사용되는 언어를 올바르게 인식 할 수 있도록 해당 구성법을 추적 할 필요가 없습니다.
2017 편집 : 비주얼 스튜디오의 실험 모듈 지원 ++, 모듈 인터페이스에 대한 기본 확장으로 연타를 .ixx
를 인식 같은 목적을 위해 .c++m
, .cppm
및 .cxxm
을 인식한다.
메이크 파일 규칙과의 일관성을 위해'.cpp'보다'.cxx'를 선호합니다. (http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html 참조) – Christoph