Programming

C ++ 코드 파일 확장자?

procodes 2020. 2. 10. 22:30
반응형

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:


사용되는 다른 파일 확장자는 .cxx.C(대문자 C)입니다. 나는 Bjarne Stroustrup이 .C원래 사용되었다고 생각 합니다. .cppC 전 처리기의 이름이므로 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.


대부분의 스타일 규칙과 마찬가지로 중요한 것은 두 가지뿐입니다.

  1. 사용하는 곳에서 가능한 한 일관성을 유지하십시오.
  2. 사용중인 특정 선택에 의존하는 것을 설계하지 마십시오.

그것들은 모순되는 것처럼 보이지만 각자 고유 한 이유로 가치가 있습니다.


.C그리고 .cc내가 본 (몇) 유닉스 지향 C ++ 프로그램에 대한 표준이 될 것으로 보인다. 나는 항상 .cppWindows에서 일하기 때문에 항상 나 자신을 사용해 왔으며 그 이후로 영원히 표준이되었습니다.

개인적으로 추천합니다 .cpp. 왜냐하면 "C Plus Plus"의 약자입니다. 이 파일 확장명이 약어는 것이 매우 중요 물론이지만,이 근거는 설득력있는 다른 중요한 일들이 시프트 키의 비 사용하다 (배제 충분히 증명해야 .C하고 .c++어떤이 배제 곳 (수)과 정규 표현식 메타 문자의 회피 .c++- 불행히도 .물론 물론 피할 수는 없습니다 .)

이것은 배제 .cc하지 않으므로 실제로 아무것도 의미하지는 않지만 Linux 지향 코드에는 좋은 선택 일 것입니다.


어떤 확장을 사용할지는 중요하지 않습니다. 더 마음에 드는 것을 골라 내십시오. 이 명명 규칙을 알고있는 유일한 예외 WinDDK파일 WDK을 컴파일 할 수 없다는 것입니다 (또는 지금입니까?) .cc. 리눅스에서는 거의 문제가되지 않습니다.


소스와 헤더에 각각 .C와 .h를 사용했습니다. 선택의 좋은 점은 명령 행 *.[Ch]에서 모든 코드 파일을 쉽게 선택할 수 있다는 것입니다. 사용 .C대소 문자 구분 파일 시스템에 문제가 될 수 있지만,이 경우 foo.cfoo.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



반응형