簡體   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