[英]Syntax explanation
在代码中:
struct tagPaint
{
}Paint,//<<<--------------what's this (Paint)?
*pPaint;//<<<-------------and this(*pPaint)?
我的意思是要声明名称为Paint的类型为tagPaint的变量以及名为pPaint的指向tagPaint的指针吗?
谢谢。
您可以在该类型的变量的声明中声明和定义struct
或class
。
因此,该声明定义了三个符号: tagPaint
(在C样式中也可以称为struct tagPaint
), Paint
其为tagPaint
)和pPaint
其指向tagPaint
。
Paint是类型tagPaint的变量。 pPaint是类型为tagPaint的指针。 如果要他们定义类型,则需要:
typedef struct tagPaint {
...
} Paint, * pPaint;
但这是C用法-您不应该使用C ++编写代码。 甚至在C语言中,定义一个隐藏某种东西是指针的事实的类型都被认为是不好的风格。
是的,在您实际发布的代码中, Paint
被声明为struct tagPaint
而pPaint
是指向struct tagPaint
的指针。
您确定没有从struct
之前错过typedef
吗? 给定名称后,定义typedef
会更加常见。
Paint
是struct tagPaint
的实例,而pPaint
是指向struct tagPaint
的指针。
该结构需要在其前面的typedef
关键字才能使用Paint
作为类型,而pPaint
作为指向Paint
类型的指针。
您都声明了它们:)
您要同时声明两者。 您可以使用以下方式声明基元:
int a, b, c, d;
但是,您不是声明int类型,而是声明了tagPaint的实例以及指向tagPaint的指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.