#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
谢谢了
主要是看不明白里面##的意思,不知道谁能够解释一下

解决方案 »

  1.   

    name##__
    这是一个整体别分开看
    就像
    struct ss{int unused; };
    typedef struct ss *s;
      

  2.   

    二个#是整体粘贴记号,主要用来定义name也就是拼接名字
      

  3.   

    DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *nameDECLARE_HANDLE(MyName)
    预编译后翻译为
    struct MyName__{int unused;}
    typedef struct MyName__ *MyName;明白了不?
      

  4.   

    DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *nameDECLARE_HANDLE(MyName)
    预编译后翻译为
    struct MyName__{int unused;}
    typedef struct MyName__ *MyName;明白了不?=============================================为啥与变异以后##就没有了这个市编译器的某种功能么