C ++ 코드 파일 확장자? .cc 대 .cpp
C ++ 코드가 파일 .cc
과 .cpp
파일 로 모두 저장된 것을 보았습니다 . 둘 사이에 차이가 있습니까?
구글 스타일 가이드를 제안하는 것 같다 .cc
,하지만 설명을 제공하지 않습니다.
나는 주로 Linux 시스템의 프로그램에 관심이 있습니다.
C ++ 컴파일러는 어느 형식 으로든 파일을 처리 할 수 있으므로 하루가 끝날 때는 중요하지 않습니다. 팀 내에서 실제 문제라면 동전을 뒤집어 실제 작업으로 이동하십시오.
GNU GCC는 C ++ 파일로 다음을 모두 인식하고 GCC를 통해있는 invoke C ++ 컴파일 여부에 관계없이 당신의 사용 또는 g ++ : .C
, .cc
, .cpp
, .CPP
, .c++
, .cp
, 또는 .cxx
.
노트 .C
- 경우를 GCC에 문제를, .c
반면 C 파일입니다 .C
(컴파일러 그것은 즉 컴파일 결정할 수 있도록 경우) C ++ 파일입니다.
GCC는 또한 특수 처리를 나타내는 다른 접미사를 지원합니다. 예를 들어 .ii
파일은 C ++로 컴파일되지만 사전 처리되지는 않습니다 (별도의 사전 처리 된 코드 용). 인식 된 모든 접미사는 gcc.gnu.org에 자세히 나와 있습니다.
사용할 확장을 결정하면서 비 컴파일러 도구를 고려하여 makefile 및 기타 도구에 사용할 유용한 조언은 자신에게 맞는 답변을 찾는 데 도움이되는 훌륭한 방법입니다.
난 그냥 몇 가지 도움말에 다음을 추가하고 싶었 .cc
대 .cpp
내가 발견 한 정보. 다음은 "C ++ Primer Plus"책에서 다른 환경으로 분류 된 확장입니다.
유닉스 사용 : .C
, .cc
, .cxx
,.c
GNU C ++ 사용 : .C
, .cc
, .cxx
, .cpp
,.c++
디지털 화성 용도 : .cpp
,.cxx
볼랜드 C ++는 다음을 사용합니다. .cpp
Watcom은 다음을 사용합니다. .cpp
의 Microsoft Visual C ++ 사용 : .cpp
, .cxx
,.cc
메트로 웍스의 CodeWarrior의 사용 : .cpp
, .cp
, .cc
, .cxx
,.c++
다른 환경은 다른 확장을 지원합니다. 나도이 질문에 대답 하고이 게시물을 찾았습니다. 이 게시물을 바탕으로 내가 갈 거라고 생각 .hpp
하고 .cpp
크로스 플랫폼 / 크로스 도구 인식의 용이성을 위해.
.cpp
내가 아는 한 C ++의 권장 확장입니다. 어떤 사람들 .hpp
은 C와 구별하기 위해 C ++ 헤더 사용 을 권장합니다 .
컴파일러는 당신이하는 일에 신경 쓰지 않지만 개인적인 취향입니다.
개인적 .cc
으로 구현 파일, .hh
헤더 및 .inl
인라인 / 템플릿에 확장을 사용 합니다 .
앞서 말했듯이, 그것은 주로 맛의 문제입니다.
내가 본 바로는 , .cc
더 "것 같다 오픈 소스 프로젝트가 중심 이있는 반면, 스타일을 코딩 훌륭한 오픈 소스 소프트웨어에 좋습니다으로". cpp
더 창 같은 것 같습니다.
--- 편집하다
언급했듯이, 이것은 "내가 본 것" 에서 잘못된 것일 수 있습니다. 내가 작업 한 모든 Windows 프로젝트가 used .cpp
였고 많은 오픈 소스 프로젝트 (주로 유닉스 계열)가 사용되었습니다 .cc
.
다음을 사용하는 코딩 스타일 예 .cc
:
- Google : http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
- ICL : http://www.doc.ic.ac.uk/lab/cplus/c++.rules/chap4.html#sect2
사용되는 다른 파일 확장자는 .cxx
및 .C
(대문자 C)입니다. 나는 Bjarne Stroustrup이 .C
원래 사용되었다고 생각 합니다. .cpp
C 전 처리기의 이름이므로 C ++에도 사용되었습니다.
다른 옵션은 .cxx
이 곳 x
플러스 45 ° 회전 될 예정이다.
Windows, Mac 및 Linux는 모두 지원 .c++
되므로이를 사용해야합니다.
프로젝트 / 팀에서 사용하는 규칙을 따르십시오.
나는 개인적으로 내가 한 .cc
프로젝트에서 본 적이 없지만 모든 기술에서 컴파일러는 신경 쓰지 않을 것입니다.
누가 관심을 가질 것인가는 개발자가 소스를 작업하는 것이므로 팀이 편한 것을 따라야합니다. "팀"이 오픈 소스 커뮤니티 인 경우 가장 일반적인 .cpp
것으로 이동하십시오.이 중 가장 좋아 하는 것 같습니다.
여러 사람 .cc
이 아무 말도 하지 않는다고 말하는가 ? 그것은 수도. C ++는 "C with Classes"로 인생을 시작했습니다.
진정한 것을 .cc
및 .cpp
대부분의 유닉스 시스템 (C 컴파일러와 C 프리 프로세서 각각)에 명령 이름도 있습니다.
나는 .cpp
독점적으로 사용 하지만 Windows에서 시작했습니다. .cc
더 많은 유닉스 관습이지만, 거기에서도 점점 더 적습니다. GNU make에는 기본 규칙이 .cpp
있으므로 아마도 Windows와 다른 모든 것에서 기본적으로 작동합니다. 반면에 현대 C ++은 헤더에 전혀 확장을 사용하지 않으므로 실제로는 마음에 들지 않습니다. 내 모든 프로젝트 .h
는 헤더 파일에 사용 하며 가능한 한 많은 extern "C"
테스트 및 테스트 를 통해 C 및 C ++를 모두 지원합니다 __cplusplus
.
대부분의 스타일 규칙과 마찬가지로 중요한 것은 두 가지뿐입니다.
- 사용하는 곳에서 가능한 한 일관성을 유지하십시오.
- 사용중인 특정 선택에 의존하는 것을 설계하지 마십시오.
그것들은 모순되는 것처럼 보이지만 각자 고유 한 이유로 가치가 있습니다.
.C
그리고 .cc
내가 본 (몇) 유닉스 지향 C ++ 프로그램에 대한 표준이 될 것으로 보인다. 나는 항상 .cpp
Windows에서 일하기 때문에 항상 나 자신을 사용해 왔으며 그 이후로 영원히 표준이되었습니다.
개인적으로 추천합니다 .cpp
. 왜냐하면 "C Plus Plus"의 약자입니다. 이 파일 확장명이 약어는 것이 매우 중요 물론이지만,이 근거는 설득력있는 다른 중요한 일들이 시프트 키의 비 사용하다 (배제 충분히 증명해야 .C
하고 .c++
어떤이 배제 곳 (수)과 정규 표현식 메타 문자의 회피 .c++
- 불행히도 .
물론 물론 피할 수는 없습니다 .)
이것은 배제 .cc
하지 않으므로 실제로 아무것도 의미하지는 않지만 Linux 지향 코드에는 좋은 선택 일 것입니다.
어떤 확장을 사용할지는 중요하지 않습니다. 더 마음에 드는 것을 골라 내십시오. 이 명명 규칙을 알고있는 유일한 예외 WinDDK
는 파일 WDK
을 컴파일 할 수 없다는 것입니다 (또는 지금입니까?) .cc
. 리눅스에서는 거의 문제가되지 않습니다.
소스와 헤더에 각각 .C와 .h를 사용했습니다. 선택의 좋은 점은 명령 행 *.[Ch]
에서 모든 코드 파일을 쉽게 선택할 수 있다는 것입니다. 사용 .C
대소 문자 구분 파일 시스템에 문제가 될 수 있지만,이 경우 foo.c
와 foo.C
같은 디렉토리에, 당신이 바라는 당신은 어쨌든 무엇을 얻을 :
cpp = c plus plus 따라서 선호하는 cc 또는 cxx는 무엇을 의미합니까?
.cc 확장자는 makefile 내에서 암시 적 규칙을 사용하는 데 필요합니다. makefile에 대한 이해를 돕기 위해이 링크를 살펴 보지만, .cc 확장자의 유용성을 분명히 밝히기 때문에 주로 두 번째 링크를 살펴보십시오.
ftp://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html
https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html
나는 지금 이것에 대해 배웠다.
새 C ++ 프로젝트를 시작하고 최신 C ++ 스타일을 찾기 시작했습니다. 나는 파일 이름 지정과 관련하여 여기에서 끝났고 나는 내가 선택한 것을 생각해 낼 것이라고 생각했다. 간다 :
Stroustrup은 이것을 기술적 인 문제보다 비즈니스 고려 사항으로 간주 합니다.
그의 조언에 따라 툴체인이 기대하는 것을 확인합시다.
UNIX / Linux의 경우 .cpp 및 .C 규칙은 별명이므로 다음 기본 GNU make 규칙을 .cc 파일 이름 접미사를 선호하는 것으로 해석 할 수 있습니다.
$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)
(참고 : 기본 COMPILE.cxx 별칭은 없습니다)
따라서 UNIX / Linux를 대상으로하는 경우 .cc와 .cpp가 모두 좋은 옵션입니다.
Windows를 대상으로 할 때 파일 시스템은 대소 문자를 구분하지 않으므로 .C에 문제가 있습니다. Visual Studio는 .cpp 접미사를 선호 한다는 점에 유의해야합니다.
macOS를 타겟팅 할 때 Xcode는 .cpp / .hpp를 선호합니다 (Xcode 10.1에서만 확인). .h를 사용하도록 항상 헤더 템플릿을 변경할 수 있습니다.
가치있는 것에 대해, 원하는 코드 기반에 따라 결정을 내릴 수도 있습니다. Google은 .cc를 사용 하고 LLVM libc ++는 .cpp를 사용합니다.
헤더 파일은 어떻습니까? 이들은 C 또는 C ++ 파일의 컨텍스트에서 컴파일되므로 .h와 .hpp를 구분할 컴파일러 또는 빌드 시스템이 없습니다. 편집기 / IDE의 구문 강조 표시 및 자동 들여 쓰기는 문제가 될 수 있지만 모든 .h 파일을 C ++ 모드에 연결하면 수정됩니다. 예를 들어 Linux의 emacs 구성은 모든 .h 파일을 C ++ 모드로로드하고 C 헤더를 잘 편집합니다. 그 외에도 C와 C ++를 혼합 할 때이 조언을 따를 수 있습니다 .
내 개인적인 결론 : .cpp / .h 는 가장 저항이 적은 경로입니다.
CC 는 C ++ 프로그램에서 사용되는 소스 코드 파일의 확장자입니다. 이러한 CC 파일은 다양한 텍스트 편집기를 사용하여 편집 할 수 있지만 읽을 수는 없습니다.
참고 URL : https://stackoverflow.com/questions/1545080/c-code-file-extension-cc-vs-cpp
'Programming' 카테고리의 다른 글
DTO, VO, POJO, JavaBeans의 차이점은 무엇입니까? (0) | 2020.02.10 |
---|---|
단일 Visual Studio 세션에서 파일의 두 인스턴스 열기 (0) | 2020.02.10 |
멀티 파트 / 폼 데이터 요청을 보내기위한 도구 (0) | 2020.02.10 |
참조로 전달하는 것과 값으로 전달하는 것의 차이점은 무엇입니까? (0) | 2020.02.10 |
Xamarin C # 및 Java로 작성된 Android 앱의 성능을 비교하는 벤치 마크 (코드 및 결과)가 있습니까? (0) | 2020.02.10 |