2011-03-04 28 views

Trả lời

15

EDIT: Được rồi, chúng tôi có một số người có thể không đọc đủ câu hỏi hoặc đưa ra giả định về câu hỏi có ý nghĩa gì hoặc cách giải thích câu trả lời.

Tôi đang trả lời các câu hỏi dưới đây đây:

nhưng lý do để lựa chọn để sử dụng "c" tiền tố là gì?


Để nhấn mạnh rằng nó có nguồn gốc từ ngôn ngữ C, tôi đoán.

+1

@Platinum Azure Bạn có bất kỳ nguồn nào để xác nhận không? –

+2

Phiên bản ".h" cũng có nguồn gốc từ ngôn ngữ C, đối với tôi không có ý nghĩa gì nhiều. –

+0

Tôi không tìm thấy bất kỳ nguồn nào, nhưng tôi nghĩ @FredOverflow là điểm trên. Đối với các xung đột trong tên tệp, điều này khá quan trọng vì trình biên dịch C++ tìm kiếm các tệp ở một số vị trí nhất định với các hậu tố nhất định và sẽ hút nếu tệp sai kết thúc được đưa vào do va chạm tên. Đối với phiên bản '.h', đó là vì các nhà thiết kế đã quyết định sử dụng hậu tố' .h' để chỉ ra đó là một tiêu đề. Đó là một quy ước hơn bất cứ điều gì, mặc dù. –

4

Các tiêu đề kết thúc bằng .h là các tiêu đề C ban đầu. Những người có tiền tố c (và không có phần mở rộng) là các phiên bản tiêu đề C được tích hợp theo chuẩn C++ (tiền tố "nhắc nhở" bạn). Về lý thuyết, mọi thứ bên trong chúng phải nằm trong không gian tên std.

+0

Tôi biết sự khác biệt, cảm ơn! Nhưng tại sao việc sử dụng tiền tố "c" để chỉ ra các phiên bản được tích hợp trong tiêu chuẩn C++? –

+2

@ Fábio - Tôi đoán nó chỉ là một cách nói với bạn ... Hey bạn đang lập trình trong C++, nhưng đây là một tiêu đề ban đầu từ C. Tuy nhiên, nó ** bây giờ ** phù hợp với C++ và mọi thứ bên trong không gian tên ** std **. –

9

Yêu cầu chứng nhận tên để phân biệt giữa các phiên bản tiêu chuẩn không gian tên std của các tiêu đề thư viện C và các tiêu đề thư viện có cùng tên C++. Ví dụ: "string.h" chứa các hàm chuỗi C ban đầu, "chuỗi" chứa các hàm chuỗi C đủ tiêu chuẩn, và "chuỗi" chứa các lớp chuỗi C++. Nếu không có tên đủ điều kiện, hai tên sau sẽ đụng độ.

+0

+1: cuối cùng là câu trả lời đúng! – rubenvb

+0

@rubenvb Ông giải thích lý do sử dụng tiền tố, tôi hỏi tại sao họ chọn tiền tố "c". Chỉ Platinum Azure đã cố gắng trả lời câu hỏi của tôi. –

+0

@ Fábio: ngoại trừ câu trả lời của anh ta ít nhất là không đầy đủ vì nó bỏ lỡ toàn bộ vấn đề. – rubenvb

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