2013-09-03 68 views
61

Sự khác nhau giữa các tiện ích mở rộng tệp là .cc.cpp là gì?Sự khác biệt giữa hậu tố tệp .cc và .cpp là gì?

Từ Google, tôi đã học được rằng cả hai đều từ ngôn ngữ C++, nhưng tôi không chắc chắn về sự khác biệt giữa chúng.

+27

'.cpp' dài hơn 1 ký tự – Prix

+4

Để tăng thêm tiền thưởng, cũng có' .cp', '.C++', '.cxx' và' .C'. – Hasturkun

+0

Vì hạt nhân Linux được viết bằng C, bạn có chắc rằng các tệp '.cc' đó có trong C++ không? – user4815162342

Trả lời

95

Công ước.

Trước đây, hậu tố cho tệp nguồn C++ là .C. Điều này gây ra một vài vấn đề trong lần đầu tiên C++ được chuyển sang một hệ thống trong đó trường hợp không có ý nghĩa trong tên tệp.

Những người dùng khác nhau đã sử dụng các giải pháp khác nhau: .cc, .cpp, .cxx và những người khác. Hôm nay, bên ngoài thế giới Unix , hầu hết là .cpp. Unix dường như sử dụng thường xuyên hơn .cc.

Đối với tiêu đề, tình huống còn khó hiểu hơn: vì lý do nào, các tác giả C++ sớm nhất quyết định không phân biệt giữa tiêu đề cho C và C++ và sử dụng .h.

này không gây ra bất kỳ vấn đề nếu không có C trong dự án, nhưng khi bạn bắt đầu phải đối phó với cả hai, nó thường là một ý tưởng tốt để phân biệt giữa các tiêu đề có thể được sử dụng trong C (.h) và những thứ không thể (.hh hoặc .hpp).

Ngoài ra, trong C++, rất nhiều người dùng (bao gồm cả bản thân mình) thích giữ mẫu nguồn và các hàm nội tuyến trong một tệp riêng biệt. Trong đó, trong khi nói đúng một tệp tiêu đề, có xu hướng nhận thêm một tập hợp khác (.inl, .tcc và có thể là rất nhiều người khác).

Trong trường hợp tiêu đề, nó hoàn toàn không có sự khác biệt đối với trình biên dịch.

Trong trường hợp tệp nguồn kết thúc khác nhau sẽ khiến trình biên dịch giả định một ngôn ngữ khác nhau . Nhưng điều này thường có thể bị ghi đè, và tôi đã sử dụng .cc với VC++ từ lâu trước khi VC++ nhận ra nó là C++.

13

Không có sự khác biệt. Chúng giống hệt nhau.

+0

Bạn đang sử dụng đối chiếu nào? Chắc chắn đây là Đan Mạch một lần nữa :) – sehe

2

Thực ra tất cả phụ thuộc vào những gì bạn và trình biên dịch của bạn thích. Không có sự khác biệt giữa chúng cả.

7

Về mặt kỹ thuật cho trình biên dịch không có sự khác biệt. Tuy nhiên, một số trình biên dịch và/hoặc xây dựng hệ thống sẽ đoán cách biên dịch các tệp của bạn dựa trên phần mở rộng và có thể hoặc không thể phát hiện "cc" (hoặc "cpp" nhưng điều đó hiếm hơn tôi đoán) dưới dạng tệp C++.

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