Dấu gạch dưới kép được dành riêng cho việc triển khai
Câu trả lời được bình chọn nhiều nhất trích dẫn Lập trình trong C ++: Quy tắc và Đề xuất :
"Việc sử dụng hai dấu gạch dưới (` __ ') trong số nhận dạng được dành riêng cho việc sử dụng nội bộ của trình biên dịch theo tiêu chuẩn ANSI-C. "
Tuy nhiên, sau khi đọc một vài tiêu chuẩn C ++ và C, tôi không thể tìm thấy bất kỳ đề cập nào về việc dấu gạch dưới bị hạn chế chỉ sử dụng nội bộ của trình biên dịch. Các tiêu chuẩn mang tính tổng quát hơn, dành gấp đôi điểm nhấn cho việc thực hiện .
C ++
C ++ (bản nháp làm việc hiện tại, truy cập 2019-5-26) ở trạng thái lex.name
:
- Mỗi mã định danh có chứa dấu gạch dưới kép __ hoặc bắt đầu bằng dấu gạch dưới theo sau là chữ hoa sẽ được dành riêng cho việc triển khai cho bất kỳ mục đích sử dụng nào.
- Mỗi số nhận dạng bắt đầu bằng dấu gạch dưới được dành riêng cho việc triển khai để sử dụng làm tên trong không gian tên chung.
C
Mặc dù câu hỏi này dành riêng cho C ++, nhưng tôi đã trích dẫn các phần có liên quan từ các tiêu chuẩn C 99 và 17:
C99 mục 7.1.3
- Tất cả các số nhận dạng bắt đầu bằng dấu gạch dưới và chữ hoa hoặc dấu gạch dưới khác luôn được dành riêng cho bất kỳ mục đích sử dụng nào.
- Tất cả các số nhận dạng bắt đầu bằng dấu gạch dưới luôn được dành riêng để sử dụng làm số nhận dạng với phạm vi tệp trong cả không gian tên thẻ và không gian thông thường.
C17 nói điều tương tự như C99.
Việc thực hiện là gì?
Đối với C / C ++, việc triển khai đề cập đến các tài nguyên được thiết lập cần thiết để tạo ra tệp thực thi từ các tệp nguồn của người dùng. Điêu nay bao gôm:
- bộ tiền xử lý
- trình biên dịch
- người liên kết
- thư viện tiêu chuẩn
Triển khai ví dụ
Có một số triển khai C ++ khác nhau được đề cập trên Wikipedia . (không có liên kết neo, ctrl + f "thực hiện")
Đây là một ví dụ về triển khai C / C ++ của Digital Mars dành một số từ khóa cho một tính năng của chúng.