1. 程式人生 > >結構體struct前面加 typedef和不加typedef的區別

結構體struct前面加 typedef和不加typedef的區別

直接把結構名定義為am_win_menutext然後使用,這樣在使用時必須這樣:
  struct am_win_menutext myval
  定義了別名之後就可以:
  am_win_menutext myval
  這樣可以更清晰。

  主要在c語言裡這樣使用 使得更方便。
  c++就不用typedef 也可以直接使用結構體名。
  c++中使用:
  struct test
  {
  int x  y
  }
  就可以定義一個名為test的結構體,但c中很可能編譯通不過。c語言並不支援在struct後使用標示符定義結構體的名字,test將會被忽略,這相當 於定義了一個沒有名字的結構體。若定義一個該結構體物件test mt  將會提示未定義的test錯誤資訊。所以,在c語言中,一般使用typedef來定義結構體,上面的例子可以改為:
  typedef struct _test{
  int x  y
  }test
  _test要不要都可以。並且,第一個大括號不能像原來那樣隨便的換行寫(因為是typedef)。