2009-03-17 8 views
3

.h를 C++ 파일의 헤더로 잘못 사용하고 있습니까?.h를 C++ 파일의 헤더로 잘못 사용하고 있습니까?

나는 "C 스타일"로 작성된 코드를 통해 모든 것을 볼 수 있습니다. Emacs는 항상 .h 헤더에 대해 C 강조 스타일을 선택하지만 hpp 또는 hh에 대해서는 C++를 선택합니다.

헤더에 .h 레이블을 지정하는 것은 실제로 "잘못"됩니까? 아니면 나를 괴롭히는 것입니까?

편집 :

나는 등 '* 쪽 그렙 뭔가'멀리 얻을 수 있습니다 내가 프로젝트 파일이 표시가있는 경우이, 날 귀찮게 왜 좋은 (틱) 이유, '& CPP는 HPP가'있다

I, 그렇지 않으면 '.hccpp'를 입력해야합니다.

답변

5

잘못된이 C++ 헤더 .h를 호출하지 않습니다. 코드에서 사용해야하는 확장 기능에 대한 규칙은 없습니다. 비 헤더의 경우 MSVC는 .cpp를 사용하고 Linux에서는 .cc도 사용합니다. 세계 표준은 없으며 .h는 확실히 널리 사용됩니다.

그러나 머리글을 .hpp (나는 몇 번이나 보았습니다.)를 사용하는 것보다 일관되고 유익한 방법이라고 생각합니다.

2

다른 파일 (C는 .c, C는 .cpp, C는 .h, C++은 .hpp)과 비슷합니다. 이것은 대부분의 컴파일러/에디터를 만족시킬 것입니다. 그렇게하지 않는 것은 잘못이 아니지만 실제로 사용하고있는 두 언어 중 어떤 언어인지 알기 위해 사용할 수 있습니다.

파일의 이름을 바꾸지 않고 해당 동작을 중지하려면 Emacs 구성을보고 소스 코드 검색을 변경해야합니다.

13

아무 문제가 없습니다. 이것은 Microsoft Visual C++의 기본값입니다.

원하는 표준을 따르고 그대로 사용하십시오.

+0

표준 라이브러리의 대부분은 확장 기능을 전혀 사용하지 않는다는 것에주의하십시오. – Richard

+1

그러나 표준 라이브러리는 특별한 경우입니다. 확장자가없는 헤더를 작성하지 마십시오. – jalf

+2

표준 라이브러리 헤더는 "파일"일 필요는 없으므로 여기서는 좋은 예가 아닙니다. 컴파일러는 자유롭게 구현할 수 있습니다. –

2

.이 파일이 .h 파일이 C 또는 C++인지 여부를 쉽게 알 수 없으므로 .h 파일의 경우 C를 선택하고 .hpp 파일의 경우 C++를 선택하는 것은 터무니 없습니다.

모든 부스트 헤더 파일에는 .hpp 접미사가 붙습니다.

+0

정력에 vim이이 문제가 없다는 것을 알았습니까? –

+0

vim homers 점수 1! –

+2

Heh, 저는 최근에 F-9에 바인딩 된 일부 elisp를 작성하여 c-mode와 C++-mode를 .h 헤더 파일로 전환하도록했습니다. (defun switch-c-or-C++-mode() "Switch to C++ - 현재 C 모드 인 경우 모드, 반대의 경우도 마찬가지입니다." (대화 형) (((주) (E-MAIN-MODE 'C-MODE)) ((주 메이저 모드'C++ 모드) (C 모드))))) –

3

당신은 사용 .h, .H, .hpp, .hxx, .hh, 또는 whathaveyou 무료입니다. C 소스의 경우 .c을 무료로 사용할 수 있고 C++ 소스의 경우 .C, .cpp, .cc 또는 .cxx과 같이 사용할 수 있습니다. 확장은 주로 협약입니다.

관련 문제