在代碼:語法解釋
struct tagPaint
{
}Paint,//<<<--------------what's this (Paint)?
*pPaint;//<<<-------------and this(*pPaint)?
我是說,我宣佈與類型tagPaint和指針的名字油漆變量稱爲pPaint到tagPaint?
謝謝。
在代碼:語法解釋
struct tagPaint
{
}Paint,//<<<--------------what's this (Paint)?
*pPaint;//<<<-------------and this(*pPaint)?
我是說,我宣佈與類型tagPaint和指針的名字油漆變量稱爲pPaint到tagPaint?
謝謝。
paint是一個tagPaint類型的變量。 pPaint是一個指向tagPaint類型的指針。如果你想讓他們定義類型,那麼你需要:
typedef struct tagPaint {
...
} Paint, * pPaint;
但這是C用法 - 你不應該在C++中編寫這樣的代碼。甚至在C中,定義一種隱藏事物是指針的類型被認爲是不好的風格。
你聲明它們都是:)
您可以在聲明該類型的變量時聲明並定義struct
或class
。
所以,該聲明定義了三個符號:tagPaint
(其也可以用C樣式稱爲struct tagPaint
)Paint
其是tagPaint
,和pPaint
指向一個tagPaint
。
是的,在您實際發佈的代碼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的一個實例。
是的,我確實錯過了typedef。 – 2010-04-29 19:47:10