中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

typedef與define的區別與聯系

發布時間:2020-08-01 04:10:55 來源:網絡 閱讀:659 作者:ghgc 欄目:軟件技術

   在C或者C++中,可以通過使用typedef和define來聲明新的類型來代替已有的類型。例如:

typedef int COUNT;

#define COUNT int;

兩者的作用都是用COUNT來代表int。雖然兩者實現的功能相同,但是實際上卻又有很大的差別,要不然也不會同時存在了。下面簡單談一下兩者的區別,希望在用到時能夠正確的進行選擇,以便減少不必要的麻煩:

  1. typedef

       在C或者C++中,typedef常用來定義一個標識符及關鍵字的別名,它是語言編譯過程的一部分,但它并不實際分配內存空間。

    使用方法:(1)先按照定義變量的方法寫出定義體(如int n[100];)

              (2)將變量名換成新類型名(如將n->NUM);

               (3) 在最前面加上typedef(如 typedef NUM[100])

              (4)可以用新類型名去定義變量

    在C中還可以用來聲明結構體類型:

typedef struct

{ double score;

  String name;

  int data;

}SCORE

 這樣就完成了新類型名SCORE的聲明,它代表上面指定的結構體類型,接下來就可以用SCORE來定義變量了:   SCORE FIRST;

      SCORE *p;  //p為指向此結構體類型數據的指針

注意:(1)typedef可以聲明各種類型名,但是不能用來定義變量。

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

      (3)typedef可有利于程序的通用與移植。例如:不同的硬件平臺對int型長度定義是不同的,有            些是2字節,有些是4字節,如果將程序從一個4字節存放整型數據的計算機系統移植到以2字            節存放×××數據的系統,則需要將定義變量中所有的int類型全部換為long類型,但是如果            使用了typedef定義了int型,則只需要更改一處。

2.#define

   為宏定義語句,通常用它來定義常量,它本身并不在編譯過程中進行,而是在這之前(預處理過程)就已經完成了,但也因此難以發現潛在的錯誤及其它代碼維護問題。

兩者區別:

#define是在預編譯時處理的,它只做簡單的替換。而typedef則是在編譯時候處理的,并不是只做簡單的替換。例如:

typedef  int NUM[10];

并不是用NUM[10]去代替“int”,二十采用如同定義變量的方法那樣來聲明一個類型,然后用它來定義變量。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南木林县| 崇义县| 台州市| 朝阳市| 阳西县| 庆城县| 中宁县| 酒泉市| 沿河| 雷州市| 龙游县| 泾阳县| 灌阳县| 兰溪市| 固阳县| 佛冈县| 五原县| 安阳市| 承德县| 巴彦淖尔市| 威信县| 延边| 车致| 马鞍山市| 宁明县| 民丰县| 古浪县| 陵水| 祁连县| 屏东县| 松桃| 蕉岭县| 堆龙德庆县| 襄垣县| 广平县| 双桥区| 青州市| 西城区| 道孚县| 青阳县| 百色市|