typedef在C和C 中的區別

2021-07-08 12:55:11 字數 779 閱讀 1204

偶然發現typedef在c和c++中是不一樣的,在c中定義結構體必須要用到typedef,而在c++ 中定義結構體時用typedef和不用又有不同。

在c中,定義結構體是一定要用到typedef的,我們在c中定義乙個簡單的結構體:

typedef struct student

stu;

stu stu1;

stu1.id=2;

printf("%d\n",stu1.id);

在上面的**中,stu是一種結構體型別,相當於struct student的別名,如果想訪問變數id或者name,必須用stu定義乙個結構體變數stu1,通過stu1來訪問id或者name。

在c++中,定義結構體可以直接這麼寫:

struct student

stu;

stu.id = 2;

cout << stu.id << endl;

這樣可以直接用stu訪問結構體中的變數。

但是如果加了typedef的話,

typedef struct student

stu;

stu stu1;

stu1.id = 2;

cout << stu1.id << endl;

這個時候和c語言定義結構體就一樣了,stu也是一種結構體型別,必須先用結構體型別定義乙個變數,才能訪問到結構體中的變數。

所以我們可以看到,在c++ 中簡化了架構體的定義,可以不加typedef直接定義。

typedef在C和C 的區別?

一 struct定義結構體 1 先宣告結構體型別再定義變數名 struct name name a 如 struct student student stu1,stu2 若在c語言中定義,應該加上struct struct student stu1,stu2 2 一邊宣告型別同時定義變數 struc...

Typedef在C和C 中的使用

在c c 中,使用typedef關鍵字可以給變數起乙個合適的別名,從而有效提高命名的可理解性,變數應用的簡潔性。typedef最簡單的應用在c的的標頭檔案中,define int8 type signed char define int16 type short int define int32 t...

C 中typedef和define的區別

typedef和 define的用法與區別 一 typedef的用法 在c c 語言中,typedef常用來定義乙個識別符號及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配記憶體空間,例項像 typedef int int typedef int array 10 typedef int ...