none
高手解释一下下面的结构体的定义? RRS feed

  • 问题

  • 本人之前提的一个问题涉及到C++库中一个头文件中的结构体的定义方式,简单说来

    其定义方式如下(下面是本人写的例子):

    #define POINT

    struct POINT p

    {

        float x;

        float y;

    };

    实际效果是上面定义了结构体类型p.

    上面的定义在Visual Studio 中是合法的。但是从#define的用法不太好理解上述方式。一般的C/C++书籍中都未讲到上面的方式,我在msdn上也没发现。而这种方式在Visual C++的标准库头文件中却时常碰到。

    求高手解答上述定义方式相对于一般的定义有何好处?什么情况下采用这种方式?

    (一般书上讲的定义结构体方式如下:

    struct p

    {

      float x;

      float y;

    };


    hooke
    2010年12月25日 5:07

答案

  • 这种定义方式没有什么意义

    编译时等效于

    struct p

    {

      float x;

      float y;

    };

    因为宏会被替换为空

    如果非要说有什么作用的话那就是看定义时有提示作用

    2010年12月25日 7:10