VC编程问题:为什么在Windows中这样定义POINT?(转)

在Windows中的POINT结构如下定义:
typedef struct tagPOINT{
    LONG x;
    LONG y;
}POINT;
谁解释一下?
为什么不直接这样定义:
struct POINT{
    LONG x;
    LONG y;
};
我在编程调试时tagPOINT可以代替POINT!

最佳答案

在早期的C代码中,声明struct对象时,必须要带上struct,即形式为: struct 结构名 对象名,如:
struct tagPOINT1
{
    int x;
    int y;
};
struct tagPOINT1 p1; 

而在C++中,则可以直接写:结构名 对象名,即:
tagPOINT1 p1;

某些程序员觉得经常多写一个struct太麻烦了,于是就发明了:
typedef struct tagPOINT
{
    int x;
    int y;
}POINT;

POINT p1; 
这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时候

你可能感兴趣的:(VC编程问题:为什么在Windows中这样定义POINT?(转))