Có sự khác biệt thực tế nào giữa WCHAR
và wchar_t
không?Sự khác biệt giữa 'WCHAR' và 'wchar_t' là gì?
Trả lời
Vâng, một khác biệt thực tế sẽ là WCHAR
không tồn tại trên nền tảng của tôi. Chỉ dành cho Windows (và không có ý định chuyển chương trình sang nền tảng khác) và với các tiêu đề cần thiết, nó giống nhau (vì WCHAR
chỉ là typedef
).
Thực tế nói không có nhiều khác biệt. Cả hai đều đại diện cho cùng một loại cơ bản. Giá trị chiều rộng 2 byte.
LIBT sẽ được một thời gian ngắn để cung cấp cho bạn sự khác biệt điên rồ thực sự giữa các nền tảng khác nhau một chuẩn C++ :)
wchar_t
là một loại riêng biệt, được xác định bởi các tiêu chuẩn C++.
WCHAR
là không tiêu chuẩn và theo như tôi biết, chỉ tồn tại trên Windows. Tuy nhiên, nó chỉ đơn giản là một typedef
(hoặc có thể là một macro) cho wchar_t
, do đó, nó không có sự khác biệt thực tế.
phiên bản cũ của MSVC không có wchar_t
như một kiểu thay vì hạng nhất đó là chỉ đơn giản là một typedef
cho short
Nhiều khả năng, Microsoft đã giới thiệu WCHAR
để đại diện cho một "loại nhân vật rộng" trên bất kỳ phiên bản trình biên dịch, có hay không wchar_t
tồn tại dưới dạng kiểu gốc.
Bạn nên sử dụng wchar_t
trong mã của mình. Đó là những gì nó cho.
Có ai biết cách cũ WCHAR
không? Tôi sẽ tưởng tượng nó có ngày ít nhất là Windows NT 3.1. Tôi muốn suy đoán rằng khi Microsoft bắt đầu sử dụng WCHAR
trong tiêu đề Windows, wchar_t
không được xác định trong tiêu chuẩn C hoặc C++. Nêu tôi sai vui long chân chỉnh tôi.
Microsoft ở vị trí không thể phủ nhận là phải hỗ trợ khai báo và tiêu đề a) phải hoạt động trong cả C và C++; b) biên dịch theo các kiến trúc rất khác nhau (i86, MIPS, PowerPC, Alpha, ...) và c) phải tương thích ngược với mã nguồn được viết cho các trình biên dịch 15 tuổi trở lên. Ngoài ra, bất kỳ thay đổi đột phá nào và hàng nghìn cuốn sách, sách hướng dẫn tham khảo, tài liệu trực tuyến, v.v. được xuất bản trong hai thập kỷ qua sẽ đột nhiên trở thành BÀI HÁT.
WCHAR
là giao diện — khi nó được xuất bản, nó được viết bằng đá, ngay cả khi không cần mã mới.
typedef wchar_t WCHAR; // wc, nhân vật UNICODE 16-bit
này được định nghĩa trong winnt.h.So ban đầu nó là WCHAR wchar_t là abbrivation để nó .Bạn có thể sử dụng wcscat, wcslen vv chức năng cho cả
- 1. Sự khác nhau giữa TCHAR và WCHAR là gì?
- 2. Sự khác biệt giữa JavaBean và POJO là gì?
- 3. Sự khác biệt giữa betweeen% INC và @INC là gì?
- 4. Sự khác biệt giữa INTERSECT và WHERE IN là gì?
- 5. Sự khác biệt giữa RoutedCommand và RoutedUICommand là gì?
- 6. Sự khác biệt chính giữa Sinatra và Ramaze là gì?
- 7. Sự khác biệt giữa DBI và DBD là gì?
- 8. Sự khác biệt giữa NSInvocation và chặn là gì?
- 9. Sự khác biệt giữa fn và fn * là gì?
- 10. Sự khác biệt giữa xtype và bí danh là gì?
- 11. Sự khác biệt giữa build.sbt và build.scala là gì?
- 12. Sự khác biệt giữa localname và qname là gì?
- 13. Sự khác biệt giữa Application.ThreadException và AppDomain.CurrentDomain.UnhandledException là gì?
- 14. Sự khác biệt giữa while (true) và loop là gì?
- 15. Sự khác biệt giữa dealloc và viewdidunload là gì?
- 16. Sự khác biệt giữa uint và System.UInt32 là gì?
- 17. Sự khác biệt giữa heuristic và thuật toán là gì?
- 18. Sự khác biệt giữa decodeURIComponent và decodeURI là gì?
- 19. Sự khác biệt giữa \ r và \ n là gì?
- 20. Sự khác biệt giữa phần .got và .got.plt là gì?
- 21. Sự khác biệt giữa ascx và .cshtml là gì?
- 22. Trong Ember.js, sự khác biệt giữa [] và Ember.A ([]) là gì?
- 23. Sự khác biệt giữa Thông báo và pynotify là gì?
- 24. Sự khác biệt giữa to_a và to_ary là gì?
- 25. sự khác biệt giữa callback là gì và hứa
- 26. Sự khác biệt giữa Request.ServerVariables ["REMOTE_ADDR"] và Request.UserHostAddress là gì?
- 27. Sự khác biệt giữa .closest() và .parents ('selector') là gì?
- 28. Sự khác biệt giữa isset và empty là gì?
- 29. Sự khác biệt giữa mẫu và đường dẫn là gì?
- 30. Sự khác biệt giữa "gọi" và "gọi" là gì?
Điều quan trọng cần lưu ý rằng điều này chỉ hợp lệ trên Windows. WCHAR là một typedef đặc trưng cho Windows (hoặc nó là một #define?), Và sizeof (wchar_t) phụ thuộc vào nền tảng này. Trên Linux (và, IIRC, Solaris), ví dụ, nó là 4 byte. –