繁体   English   中英

语法说明

[英]Syntax explanation

在代码中:

struct tagPaint
{
}Paint,//<<<--------------what's this (Paint)?
*pPaint;//<<<-------------and this(*pPaint)?

我的意思是要声明名称为Paint的类型为tagPaint的变量以及名为pPaint的指向tagPaint的指针吗?
谢谢。

您可以在该类型的变量的声明中声明和定义structclass

因此,该声明定义了三个符号: tagPaint (在C样式中也可以称为struct tagPaint ), Paint其为tagPaint )和pPaint其指向tagPaint

Paint是类型tagPaint的变量。 pPaint是类型为tagPaint的指针。 如果要他们定义类型,则需要:

typedef struct tagPaint {
   ...
}  Paint, * pPaint;

但这是C用法-您不应该使用C ++编写代码。 甚至在C语言中,定义一个隐藏某种东西是指针的事实的类型都被认为是不好的风格。

是的,在您实际发布的代码中, Paint被声明为struct tagPaintpPaint是指向struct tagPaint的指针。

您确定没有从struct之前错过typedef吗? 给定名称后,定义typedef会更加常见。

Paintstruct tagPaint的实例,而pPaint是指向struct tagPaint的指针。

该结构需要在其前面的typedef关键字才能使用Paint作为类型,而pPaint作为指向Paint类型的指针。

您都声明了它们:)

您要同时声明两者。 您可以使用以下方式声明基元:

int a, b, c, d;

但是,您不是声明int类型,而是声明了tagPaint的实例以及指向tagPaint的指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM