結構體在c和c 中的不同

2021-10-06 02:19:14 字數 954 閱讀 7826

分三塊來講述:

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...