WCHAR
和wchar_t
之間是否有實際區別?'WCHAR'和'wchar_t'有什麼區別?
回答
那麼,一個實際的區別是我的平臺上不存在WCHAR
。僅適用於Windows(並且無意將程序移植到其他平臺),並且包含必要的標題,這是相同的(因爲WCHAR
只是typedef
)。
實際上說沒有太大的區別。它們都代表相同的基礎類型。一個2字節的寬度值。
LIBT將在不久給你各種平臺的C++標準:)
wchar_t
是一種獨特類型,由C++標準定義之間的真正精神失常的差異。
WCHAR
是非標準,據我所知,只存在於Windows上。但是,對於wchar_t
,它僅僅是typedef
(或可能是宏),所以它沒有實際區別。
MSVC的舊版本沒有wchar_t
作爲第一類類型,相反,它只是一個typedef
爲short
最有可能的,微軟推出WCHAR
在整個任何編譯器版本代表了「寬字符類型」,是否存在wchar_t
作爲本機類型。
您應該在代碼中使用wchar_t
。這就是它的目的。
有沒有人知道WCHAR
是幾歲?我會想到它至少可以用於Windows NT 3.1。我推測,當微軟在Windows頭文件中開始使用WCHAR
時,wchar_t
未在C或C++標準中定義。如果我錯了,請糾正我。
微軟不得不支持聲明和頭文件,這些聲明和頭文件a)必須在C和C++中工作; b)在非常不同的體系結構下編譯(i86,MIPS,PowerPC,Alpha,...)和c)必須與爲15歲以上的編譯器編寫的源代碼向後兼容。另外,過去二十年中發佈的任何突破性更改和數千本書籍,參考手冊,在線文檔等將突然變爲錯誤。
WCHAR
是一個接口 - 一旦它發佈出來,它就是用石頭寫成的,即使它不是新代碼所需要的。
typedef wchar_t WCHAR; // WC,
這是在winnt.h.So定義的16位UNICODE字符最初是爲wchar_t WCHAR是abbrivation它。你可以使用wcscat,wcslen等功能都
- 1. 有什麼區別`和$(Bash中有什麼區別?
- 2. 有什麼區別? :和||
- 3. &&和||有什麼區別?
- 4. 「/」和「/ *」有什麼區別?
- 5. 有什麼區別:。!和:r!?
- 6. ==和===有什麼區別?
- 7. Appender和〜有什麼區別?
- 8. $ @和$ *有什麼區別?
- 9. is和=有什麼區別?
- 10. #.00和#。##有什麼區別?
- 11. `==`和`is`有什麼區別?
- 12. '=='和'==='有什麼區別?
- 13. /和/#/有什麼區別?
- 14. | 0和~~有什麼區別?
- 15. `&`和`ref`有什麼區別?
- 16. ==和===有什麼區別?
- 17. ==和===有什麼區別?
- 18. `{}`和`[]`有什麼區別?
- 19. JavaScript和=== ===有什麼區別?
- 20. difftime和' - '有什麼區別?
- 21. =和==有什麼區別?
- 22. xtype和別名有什麼區別?
- 23. Mixpanel:識別()和people.identify()有什麼區別?
- 24. 有什麼區別
- 25. 有什麼區別
- 26. 有什麼區別?
- 27. 有什麼區別?
- 28. 有什麼區別?
- 29. 有什麼區別
- 30. ....有什麼區別?
重要的是要注意這僅在Windows上有效。 WCHAR是Windows特定的typedef(或者它是#define?),sizeof(wchar_t)取決於平臺。在Linux(和,IIRC,Solaris)上,例如,它是4個字節。 – 2009-02-18 16:44:05