分三塊來講述:
1 首先://注意在c和c++裡不同
在c中定義乙個結構體型別要用typedef:
typedef struct student
stu;
於是在宣告變數的時候就可:stu stu1;(如果沒有typedef就必須用struct student stu1;來宣告)
這裡的stu實際上就是struct student的別名。stu==struct student
另外這裡也可以不寫student(於是也不能struct student stu1;了,必須是stu stu1;)
typedef struct
stu;
但在c++裡很簡單,直接
struct student
;
於是就定義了結構體型別student,宣告變數時直接student stu2;
2.其次:
在c++中如果用typedef的話,又會造成區別:
struct student
stu1;//stu1是乙個變數
typedef struct student2
stu2;//stu2是乙個結構體型別=struct student
使用時可以直接訪問stu1.a
但是stu2則必須先 stu2 s2;
然後 s2.a=10;
3 掌握上面兩條就可以了,不過最後我們**個沒多大關係的問題
如果在c程式中我們寫:
typedef struct
aaa,bbb,ccc;
這算什麼呢?
我個人觀察編譯器(vc6)的理解,這相當於
typedef struct
aaa;
typedef aaa bbb;
typedef aaa ccc;
也就是說aaa,bbb,ccc三者都是結構體型別。宣告變數時用任何乙個都可以,在c++中也是如此。
C 移植到C中 結構體的不同
最近的乙個專案,需要把x86下乙個c 工程,移植到嵌入式linux下,就下面這個熟悉而又陌生的結構體,在gcc環境下,當然是編譯不過的。於是我把構造部分遮蔽了。但在c 下初始化的那個步驟,我沒有意識到要在c下實現,於是除錯過程中就出現了很多錯誤,最終才發現是這個位址。typedef struct t...
struct結構體在c和c 中的區別
很多次遇到這個struct的問題,今天在這裡簡單總結一下我的理解 一 struct在c 中的使用 1 單獨使用struct定義結構體型別 struct student stu1 struct student stu2 stu1.id 1 stu2.id 2 上面定義了乙個結構體型別struct st...
struct結構體在c和c 中的差別
非常多次遇到這個struct的問題,今天在這裡簡單總結一下我的理解 一 struct在c 中的使用 1 單獨使用struct定義結構體型別 struct student stu1 struct student stu2 stu1.id 1 stu2.id 2 上面定義了乙個結構體型別struct s...