[英]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.