我想了解以下代碼:TCHAR指針初始化
const TCHAR * portName = "COM15";
我明白,一個TCHAR或者是字符(在ANSI)或WCHAR(以Unicode),基本上是一個1個字節或2字節代表某事的容器。
現在,如果我聲明一個指向const TCHAR的指向portName的指針,那麼portName就是一個指針。當我使用「=」符號時,我給這個指針一個值,對我來說,「COM15」就是地址似乎不合理。我假設這行代碼給了我一個指向「COM15」字符串開始位置的指針,對嗎?
那麼這行代碼中究竟發生了什麼?
正在創建字符串(「COM15」),而「=」符號實際上意味着該字符串的開頭位置正在賦予給portName?
爲了正確地得到這個字面值,請使用'_T()'宏:'const TCHAR * portName = _T(「COM15」);' –
字符串「COM15」存儲在一個只讀位置,並且該位置的地址被返回到你的指針。 – Gopi
請注意,代碼不正確。它應該是'const char *'或'TEXT(「COM15」)'。目前的例子不會編譯爲Unicode。 – MSalters