2012-03-12 25 views

Trả lời

5

Điều này có thể do hậu tố L được sử dụng trên các hằng số nguyên. Dường như đây là trường hợp tái sử dụng hậu tố hiện có làm tiền tố. Câu trả lời khác là điều này được thiết kế theo ủy ban. Đừng hỏi. Câu trả lời thứ ba là thư hoặc cơ chế nào khác mà bạn đã chọn, và bạn có thể biện minh cho nó chống lại quy ước L không? Tranh luận cả cho và chống lại.

Tồi tệ hơn việc sử dụng lại L là tái sử dụng các từ khóa như staticauto với ý nghĩa mới. :)

Nhân tiện, điều này được đề cập đến trong cơ sở lý luận cho ANSI C (từ năm 1989). Họ không giải thích tại sao L được chọn. Chỉ có điều này:

Tiền tố L phân biệt các chuỗi chữ rộng. Ký hiệu tiền tố (như trái ngược với hậu tố) đã được chấp nhận sao cho một dịch giả có thể biết khi bắt đầu xử lý chuỗi ký tự dài cho dù nó đang xử lý các ký tự bình thường hoặc rộng. (Xem §2.2.1.2.)

Mục 2.2.1.2 không đưa ra manh mối bổ sung.

+4

Tôi đoán chữ 'W' cũng sẽ là một lựa chọn hiển nhiên. –

+2

Ít nhất C++ 11 đã tạo ra sự lựa chọn hợp lý của 'U' cho chuỗi Unicode. – dan04

+0

@ dan04: Việc sử dụng 'U' cho Unicode không phải là mới trong C++ 11, chúng tôi đã có' \ U' cho các ký tự Unicode đơn. – MSalters

5

MSDN tuyên bố nó là viết tắt của chuỗi Literal, tức là chuỗi ký không nên được dịch sang bất cứ điều gì khác

+0

Không thực sự có ý nghĩa nhiều, hoặc ... nhìn thấy cách _ "abc" _ là một chuỗi chữ, quá; chỉ 'char' thay vì' wchar_t' – pezcode

+0

Câu trả lời dựa trên MSDN về chuẩn C++ nhận được bốn phiếu bầu? Đó là điều sai lầm, LOL. – Kaz

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