2012-11-30 175 views
0

這兩種聲明結構的方式有什麼區別?結構聲明

第一方式:

struct x {}; 

方式二:

struct _x {} x; 

回答

2

第一隻定義類型struct x。第二種定義了類型struct _x定義了一個名爲x的類型的變量。

雖然它可能不是你想到的,但以_x之類的下劃線開頭的名稱在文件範圍內保留,所以除非它位於某個其他範圍內,否則第二個包含未定義的行爲。

2

第二種方式聲明名爲類型的變量struct _x這種類型的變量名爲x。第一個只聲明類型struct x

的第二種方式是本質上相同

struct _x{}; // define a type 
struct _x x; // allocate a variable of type struct _x