2010-02-11 63 views
11

tôi nhận thấy rằng thư viện tăng sử dụng các tệp tiêu đề của (.hpp).
Tôi tò mò vì hầu hết các tệp nguồn tôi thấy đều sử dụng các tệp tiêu đề .h bình thường.
có thể được bất kỳ trường hợp đặc biệt mà bảo đảm sử dụng .hpp thay vì .hsự khác biệt giữa các tệp tiêu đề c (.h) và tệp tiêu đề C++ (.hpp)

Cảm ơn

+0

http://stackoverflow.com/questions/2146207/what-is-the-significance-of-a-h-file –

Trả lời

18

Chỉ cần ước, không có gì đặc biệt. Bạn có thể sử dụng bất kỳ phần mở rộng trên bao gồm các tập tin, thực sự.

1

Thật vậy, Otavio là chính xác.

Tôi sử dụng hpp/h để phân biệt giữa hai ngôn ngữ khi xây dựng các sản phẩm đa ngôn ngữ. Ví dụ, một định nghĩa lớp có thể đi trong một .hpp (thực hiện trong .cpp), trong khi một tệp .h sẽ chỉ định nghĩa các hàm được hỗ trợ bởi C. Để thực hiện việc tách biệt này, điều quan trọng là phải biết sự khác biệt giữa các ngôn ngữ - cho đến cuối này Tôi chuyển * .c qua gcc và * .cpp qua g ++.

4

.hpp, .H, vv là một quy ước lỏng lẻo cho các tệp tiêu đề C++, .tcc là một quy ước lỏng lẻo cho việc triển khai mẫu C++, .h là quy ước khá mạnh đối với các tệp c.

Tăng cường sử dụng phần mở rộng hpp, QT sử dụng phần mở rộng .h, STL không có phần mở rộng. Tôi chắc chắn có các thư viện sử dụng .H nhưng chưa thấy bất kỳ thư viện nào.

+0

Tôi không nghĩ rằng Qt sử dụng bất kỳ tiện ích mở rộng nào cả. – Veeti

+2

QT 3 phần lớn sử dụng phần mở rộng .h, nhưng Qt 4 dường như đang di chuyển để không có phần mở rộng, vì hầu hết các tiêu đề cũng có các đối tác .h. – greyfade

1

Mục đích của #include "filename" chỉ thị tiền xử lý là thay thế dòng #include bằng nội dung của filename.
Vì vậy, hãy giải thích bất kỳ tên nào cho tệp sẽ làm, nhưng vì nó xảy ra là quy ước, bao gồm các tệp là ".h" hoặc ".hpp", Một lợi thế là cú pháp tô sáng trong trình chỉnh sửa bạn chọn (vim trong trường hợp của tôi)).

0

Tôi nghe nó cũng hơi phổ biến đối với các lập trình viên UNIX và Linux để sử dụng .hh và .cc như trái ngược với .cpp và .h. Cá nhân tôi thích đặt tên cho các tệp tiêu đề của mình .hh vì nó giúp emacs phân biệt cú pháp cú pháp C và C++. Tôi cũng sử dụng phần mở rộng .cc vì nó có vẻ tốt cùng với .hh, và nó ngắn hơn .cpp. Và tôi thường làm mã hóa của tôi trong và cho môi trường Linux.

0

bạn chỉ đang nói trình biên dịch bao gồm tệp đã cho trong mã của bạn trong khi biên dịch. vì vậy nó không quan trọng những gì phần mở rộng tập tin có. Nhưng tốt nhất nên là tập tin văn bản.

Các vấn đề liên quan