在c語言中,定義一個結構體類型最好用上typedef這種方式,至于為什麼?下面我們簡單講下。
typedef struct point{int x;int y;}Point;在聲明變量或定義變量的時候就可以像這樣:Point p1;
如果沒有用typedef這個關鍵字,如:struct point {int x;int y;};在聲明變量或者定義變量的時候就必須用:struct point p1;可以看出Point是struct point的别名。其實也可以省去point如下:typedef struct {int x;int y;}Point;
=================
在c++裡,用法比c語言簡單
struct Point {int x;int y;};定義了一個結構體Point,聲明變量時直接用Point p1;
如果使用typedef又會造成差別struct Point{int x;int y;} p1; //這裡定義了Point結構體,同時聲明了一個變量p1typedef struct Point{int x;int y;} p2; //這裡的p2 是Point的别名
總結:
在c中 struct 不能包含函數
在c++中, 對struct進行了擴充,可以包含函數
在c++中, 之是以包含兩種定義方式主要是為了相容c語言
