国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

用typedef定義類型詳細(xì)總結(jié)

2020-01-26 15:44:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

除了可以直接使用C提供的標(biāo)準(zhǔn)類型名(如:int ,char ,float,double,long等)和自己聲明的結(jié)構(gòu)體、共用體、枚舉類型外,還可以使用typedef聲明 新的類型名 來(lái)代替 已有的 類型名。如:

typedef int INTEGER;

typedef float REAL;

指定用INTEGER代表int類型,REAL代表float類型,這樣,下面的兩行等價(jià):

1)int i,j;  float a,b;

2)INTEGER i,j;   REAL a,b;

可以聲明結(jié)構(gòu)體類型:
typedef struct

{
      int month;

      int day;

      int year;

}DATE;

聲明了新類型DATE,這時(shí)就可以使用DATE定義變量: DATE birthday(不要寫成 struct DATE birthday;);DATE* p;//指向結(jié)構(gòu)體類型的指針。

還可以進(jìn)一步:

1)typedef int NUM[10];//聲明整型數(shù)組類型

    NUM n;//定義n為整型數(shù)組變量,其中n[0]--n[9]可用

2)typedef char* STRING;//聲明STRING為字符指針類型

    STRING p,s[10];//p為字符指針變量,s為指針數(shù)組

3)typedef int (*POINTER)();//聲明POINTER為指向函數(shù)的指針類型,該函數(shù)返回整型值,沒(méi)有參數(shù)

    POINTER P1,P2;//p1,p2為POINTER類型的指針變量

說(shuō)明:

      1)用typedef可以聲明各種類型名,但不能用來(lái)定義變量,用typedef可以聲明數(shù)組類型、字符串類型、使用比較方便。

例如:定義數(shù)組,原來(lái)是用:int a[10],b[10],c[10],d[10];由于都是一維數(shù)組,大小也相同,可以先將此數(shù)組類型聲明為一個(gè)名字:

typedef int ARR[10];

然后用ARR去定義數(shù)組變量:

ARR a,b,c,d;//ARR為數(shù)組類型,它包含10個(gè)元素。因此a,b,c,d都被定義為一維數(shù)組,含10個(gè)元素。可以看到,用typedef可以將 數(shù)組類型 和 數(shù)組變量 分離開(kāi)來(lái),利用數(shù)組類型可以定義多個(gè)數(shù)組變量。同樣可以定義字符串類型、指針類型等。

      2)用typedef只是對(duì)已經(jīng)存在的類型增加一個(gè)類型名,而沒(méi)有創(chuàng)造新的類型。

      3)typedef與#define有相似之處,但事實(shí)上二者是不同的,#define是在 預(yù)編譯 時(shí)處理,它只能做簡(jiǎn)單的字符串替換,而typedef是在 編譯時(shí) 處理的。它并不是做簡(jiǎn)單的字符串替換,而是采用如同 定義變量 的方法那樣來(lái) 聲明 一個(gè)類型。

例如:typedef int COUNT;和#define COUNT int的作用都是用COUNT代表int,單事實(shí)上它們二者是不同的。

      4)當(dāng)不同源文件中用到 同一類型數(shù)據(jù)時(shí),常用typedef聲明一些數(shù)據(jù)類型,把它們單獨(dú)放在一個(gè)文件中,然后在需要用到它們的文件中用#include命令把它們包含進(jìn)來(lái)。

      5)typedef有利于程序的通用與移植。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 衡山县| 清河县| 广德县| 台湾省| 泽库县| 龙南县| 驻马店市| 汤阴县| 安仁县| 洛阳市| 如皋市| 文化| 双峰县| 邢台市| 吉水县| 大冶市| 三穗县| 静安区| 资兴市| 南昌市| 潞西市| 青河县| 新营市| 冕宁县| 陇南市| 肃宁县| 盐池县| 吴忠市| 高密市| 枞阳县| 淄博市| 全椒县| 伊通| 夏邑县| 广德县| 白银市| 庆云县| 揭西县| 平武县| 巴塘县| 中方县|