C語言:typedef

來源:互聯網
上載者:User
 

typedef是用來聲明自訂資料類型,配合各種原有資料類型來達到簡化編程的目的的類型定義關鍵字.

 

 用typedef定義類型的方法

① 先按定義變數的方法寫出定義體(如:int i)。

② 將變數名換成新類型名(例如:將i換成COUNT)。

③ 在最前面加typedef. (例如:typedef int COUNT)。

④ 然後可以用新類型名去定義變數。

 

說明:

(1)用typedef可以聲明各種類型名,但不能用來定義變數。

(2) 用typedef只是對已經存在的類型增加一個類型名,而沒有創造新的類型。

(3) 當不同源檔案中用到同一類型資料時,常用typedef聲明一些資料類型,把它們單獨放在一個檔案中,然後在需要用到它們的檔案中用#include命令把它們包含進來。

(4) 使用typedef有利於程式的通用與移植。

(5) typedef與#define有相似之處,例如:typedef int COUNT;#define COUNT int的作用都是用COUNT代表int。但事實上,它們二者是不同的。#define是在先行編譯時處

的,它只能作簡單的字串替換,而typedef是在編譯時間處理的。實際上它並不是作簡單的字串替換,而是採用如同定義變數的方法那樣來聲明一個類型.

 

結構體與typedef

struct{

 int x;

 int y;

} test1;

定義了結構體test1, test1.x 和test1.y 可以在語句裡用了。

 

struct test{

int x;

int y;

} test1;

定義了結構體test1,test1.x 和 test1.y 可以在語句裡用了。與 前面相比,省寫 了 test。

 

typedef  struct  test{

int x;

int y;

} text1,text2;

定義了結構體的(類型)別名叫text1 或叫text2。真正在語句裡用,還要寫:text1  te;   
然後才可以用 te.x    te.y

typedef struct{

int x;

int y;

}test1;

同上一個一樣,還要寫: test1 my_st;  才能用
my_st.x
my_st.y

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.