typedef CHAR *LPSTR, *PSTR;相当于:     typedef CHAR *LPSTR;
     typedef CHAR *PSTR;如果是这样的话,那应该写成: 
          typedef CHAR *LPSTR, CHAR *PSTR;写成
          typedef CHAR *LPSTR, *PSTR;         岂不是少一个CHAR吗?

解决方案 »

  1.   

    接分,typedef CHAR *LPSTR, CHAR *PSTR;这样写很明显语法错误
      

  2.   

    typedef 类型 新名,*p新名
      

  3.   

    同意楼上的其实 LPstr 和Pstr是一样的LPSTR   指向字符串的长指针,long   pointer   string 
    PSTR     指向字符串的指针,poionter   string 
    注意首字母. 
    在以前的windows版本中,有短指针和长指针之分,但在32位的版本中,已无此区分,但已成为习惯, 
    延续下来
      

  4.   

    typedef语法与变量定义是一样的。
    比如我们定义char*变量: CHAR *LPSTR, *PSTR; // LPSTR,PSTR是变量
    那么就可以使用
    typedef CHAR *LPSTR, *PSTR;// LPSTR,PSTR是类型声明
    将定义转成声明。
      

  5.   

    http://www.cprogramming.com/tutorial/typedef.htmltypedef就是给已有类型定义的新名称;
    *LPSTR, *PSTR均为char的别名,且可以指定多个,如下:
    typedef CHAR *LPSTR, *PSTR, my_char, my_test, my_func();
    都是成立的。
      

  6.   

    A typedef declaration introduces a name that, within its scope, becomes a synonym for the type given by the type-declaration portion of the declaration. typedef type-declaration synonym; 
      

  7.   

    int *a,*b;
    int *a,int *b;
      

  8.   

    LS的最后一句是不是这样定义?
    int *a;int *b;
      

  9.   

    typedef CHAR *LPSTR, *PSTR;等同于 char * 自定义类型为 LPSTR 或者是 PSTR
    接分
      

  10.   

    看这个例子: int* a ,b; 等同于: int* a; int * b; 或是int* a ,b=0;
      

  11.   

    看这个例子: int* a ,*b; 等同于: int* a; int * b; 或是int* a ,*b=NULL;
      

  12.   

    14 楼经典 。
    typedef int *MyInt, *YouInt;MyInt <=> int *YouInt <=> int *又比如:
    typedef strut
    {
    }strA, *strB;
      

  13.   


    谢谢。那现在的新问题是:你怎么知道是 typedef CHAR *LPSTR  是typedef CHAR (*LPSTR) 而不是typedef (CHAR *)LPSTR呢,
      

  14.   

    typedef进行类型声明的规制与指针定义的规则是一致的,应该是typedef CHAR *LPSTR,*PSTR;这就好比我们通过int *a,*b;来定义两个指针。只是说前者是对指针类型名取了两个别名便于记忆,后者定义的是两个指针类型变量。
      

  15.   

    typedef type-declaration synonym;
      

  16.   

    int x,int y;
    可以这样定义吗?正常定义是
    inyt x,y;