typedef const char* PSTR, *LPSTR;
我的問題是:PSTR和LPSTR相同的別名?
爲什麼,如果我將其更改爲
typedef const char* PSTR, LPSTR;
我得到LPSTR是char?如果
typedef const char* PSTR, LPSTR;
PSTR是一個指針
typedef const char* PSTR, *LPSTR;
我的問題是:PSTR和LPSTR相同的別名?
爲什麼,如果我將其更改爲
typedef const char* PSTR, LPSTR;
我得到LPSTR是char?如果
typedef const char* PSTR, LPSTR;
PSTR是一個指針
這就是爲什麼我總是堅持*
的名稱,而不是類型。
當你鍵入
typedef const char *PSTR;
你必須閱讀*PSTR
是const char
,所以PSTR
是const char
的地址。
所以,如果你鍵入
typedef const char *PSTR,
*LPSTR,
OTHER;
OTHER
和*LPSTR
是const char
的只有我爲*PSTR
。
的typedef不alias..so,LPSTR是char
請記住*是一個操作符,而不是一個類型。 –
請記住*是一個操作符,而不是一個類型。當你定義char * x時,意味着當你把*放在變量x之前時,你會得到一個char。 –
是啊這是一個char
。用於推導變量定義中變量類型的相同規則適用於typedef定義。
它就像一個變量聲明,在前面有一個'typedef'。 – molbdnilo
現在下面的答案已經解釋了它 - 可能最好忘記整個事情,並堅持每個typedef一個標識符。 –
@GavinLock當然,這是最具可讀性的,但我認爲他在MS Windows標題中看到了這一行。 – Boiethios