C++:
typedef struct {
int data;
int text;
} S1;
- // 這種方法可以在c或者c++中定義一個S1結構
struct S2 {
int data;
int text;
};
- // 這種定義方式只能在C++中使用,而如果用在C中,那麼編譯器會報錯
struct {
int data;
int text;
} S3;
- //這種方法並沒有定義一個結構,而是定義了一個s3的結構變量,編譯器會為s3內存。
void main()
{
S1 mine1; // OK , S1 是一個類型
S2 mine2; // OK, S2 是一個類型
S3 mine3; // OK, S3 不是一個類型
S1.data = 5; // ERROR S1 是一個類型
S2.data = 5; // ERROR S2 是一個類型
S3.data = 5; // OK S3是一個變量
}
- // 另外,對與在結構中定義結構本身的變量也有幾種寫法
struct S6 {
S6* ptr;
};
- // 這種寫法只能在C++中使用
typedef struct {
S7* ptr;
} S7;
- // 這是一種在C和C++中都是錯誤的定義
//如果在C中,我們可以使用這樣
typedef struct tagS8{
tagS8 * ptr;
} S8;
全站熱搜
留言列表