C++ 具有多个输出的Typedef
我刚刚发现以下是有效的C++C++ 具有多个输出的Typedef,c++,C++,我刚刚发现以下是有效的C++ typedef const char* PSTR, *LPSTR; 我的问题是:PSTR和LPSTR是同一个别名吗 为什么我要把它改成 typedef const char* PSTR, LPSTR; 我知道LPSTR是一个字符???typedef不是别名..所以如果 typedef const char* PSTR, LPSTR; PSTR是指针,LPSTR是字符是的,它是字符。在变量定义中推断变量类型的规则同样适用于typedef定义。这就是为什么我总是将
typedef const char* PSTR, *LPSTR;
我的问题是:PSTR和LPSTR是同一个别名吗
为什么我要把它改成
typedef const char* PSTR, LPSTR;
我知道LPSTR是一个字符???typedef不是别名..所以如果
typedef const char* PSTR, LPSTR;
PSTR是指针,LPSTR是字符是的,它是字符。在变量定义中推断变量类型的规则同样适用于typedef定义。这就是为什么我总是将
*
粘贴到名称而不是类型上
你打字的时候
typedef const char *PSTR;
您必须了解*PSTR
是常量字符
,因此PSTR
是常量字符
的地址
所以如果你打字
typedef const char *PSTR,
*LPSTR,
OTHER;
OTHER
和*LPSTR
是const-char
s,就像*PSTR
一样,它就像一个变量声明,前面有一个typedef
。现在下面的答案已经解释了这一点-也许最好忘记整个事情,坚持每个typedef使用一个标识符。@GavinLock当然,这是最可读的,但我认为他在MS Windows标题中看到了这一行。请记住*是运算符,不是类型。请记住*是运算符,不是类型。当你定义char*x时,意味着当你把*放在变量x前面时,你会得到一个char。