c 中的typedef關鍵字有什麼作用

時間 2022-04-27 10:28:16

1樓:匿名使用者

就是type和define的合稱,型別定義.主要是用來定義乙個型別的.簡單點說

typedef unsigned int num;

這樣以後使用num i=22;就相當於使用了unsigned int i=22;作用是方便程式的閱讀和讀寫.

另外像.

typedef struct poin

poin2;

這樣以來,poin2和poin是一樣的.而如果不加typedef那麼這裡的poin2就是乙個poin的例項.

再有typedef void(*fp)(int,int);

以後使用fp相當於直接定義乙個沒有返回值帶兩個int引數的函式指標.

比如void func(int x,int y)....

fp p2=func;

而不須要

void(*p2)(int,int);

p2=func;

省了很長的申請函式指標的代表.

總歸簡單一句話,就是用來把複雜的定義簡化.把有特性的型別定義成比較容易記的

2樓:匿名使用者

我來總結一下:

1.定義新的型別,便於跨平台

typedef int int

2.c語言中有定義結構體

typedef struct studentstu;

但c++其實不用這麼寫

3.定義函式指標,方便。

typedef int (*pfunc)(int a, int b); //定義了乙個pfunc的函式指標

如果有函式定義為int add(int a,int b);

pfunc = &add;

pfunc(a, b); //相當於呼叫add函式4.隱藏陣列的維數,也是為了**的美觀吧

typedef char[200] chararr;

chararr str; //str是個200位元組大小的字元陣列我所知道的差不多就這些。

3樓:

定義型別,比如

typedef int myint

然後就可以把myint當作int用。

最普遍的用法是定義結構體型別

typedef struct studentstu;

然後直接用stu stu1就能定義這個結構體型別。如果普通的做法:

struct student;

這樣的話,必須宣告其為 struct student stu1;

然後才能把stu1當作這個結構體型別用

4樓:

可以給結構體起乙個別的名字

typedef struct studentstu;

就是stu是student的另乙個名字

5樓:匿名使用者

在 c 語言中 typedef 用來定義 已知型別 的別名,本質上和原來的型別是一樣的,不過 這可以提高程式的閱讀性, 更 方便程式移植等等,比如

typedef float money ;

money mymoney;

這個money 其實是 float 的別名,本質上就是 float 。如果要修改 money 的真實型別,只需將 float 替換掉就可以啦, 比如你覺得money 精度不夠,要替換成更高精度的型別, 把 money 替換成 double 型,只需

typedef double money ;

money mymoney;

如果 你沒有用 typedef 的話,再每個用到 float 的地方都得替換成 double ,這是非常麻煩的。

總而言之, typedef 的機制還是比較簡單的,不過 在c語言中,注意一下名稱重定義的情況就可以啦(c++不會有這種情況)。

c++中typedef是什麼意思啊

6樓:搜虎哈哈

c++中typedef為c語言的關鍵字,其作用是給某種資料型別定義乙個新的名字。關於typedef的更多介紹如下:

1.在c語言程式設計中,可以使用【typedef】關鍵字來重新命名乙個資料型別,這裡指的資料型別包括基本資料型別如int ,char,double等和結構資料型別struct等。

2.使用typedef的目的主要有兩個,其一是為了讓自己在後續程式設計時方便記住變數的名字,其二是為了簡化一些變數名稱較長的名字。

3.常見的用法如下:

該**中,使用status來代替int的表達,使用date來代替double的表達。

7樓:

c/c++語言中,typedef 是乙個用於自定義變數型別名的預定義識別符號。用它定義的自定義型別名可以用到程式中。

例如:如果有語句

typedef int num;

則語句num a = 5;

等價於語句

int a = 5;

可以用自定義的型別名取代預定義變數型別識別符號。一般在主函式以外進行定義。

8樓:匿名使用者

typedef型別定義,就是把struct msg這種型別定義為msg型別。

9樓:

typedef dword (pascal *pp)(gg);

typedef struct msg

msg, *gg;

把msg定義成結構 struct msg

gg定義成結構指標 struct msg*;

把 pp定義成 dword (pascal *)(gg); 函式指標型別

typedef定義乙個使用者命名的型別,

可以 用乙個有意義的名字命名.

10樓:潘達

型別定義關鍵字,他用來定義乙個型別。。。。

typedef unsigned int uint;

如果你寫這一句話,就定義了乙個型別,他的名字是uint 代表無符號數,之後你可以用

uint i;來定義乙個無符號數。。。。

你得這句話是定義了乙個結構型別,型別名就是msg;

以後你要建立乙個這樣的結構體只需要msg a;即可,如果沒有定義,你就只能寫成

struct msg a;

typedef 的用法是 typedef 要定義的型別 使用的型別名;

typdef語句使用後就定義了乙個新的型別名用來代替原來的型別,之後就可以使用這個型別,

比如 typdef int i;

i j;

這就定義了乙個型別名叫i; 他是int型的,第二句是宣告乙個i型別的變數j;

11樓:匿名使用者

typedef a b

就是說 我給a型別乙個別名 稱為b

這個typedef看上去比較雞肋 其實有3種用法1。你可能定義結構體structure或者類class,那麼每次申明新的結構體或類時你要重複寫關鍵字,而且名字比較長,很煩人,就可以用typedef,給乙個簡短的名字。舉例struct st

你每次申明都要 struct st a; struct st b;很煩,特別是st的名字很長。你可以typedef struct st mytype。之後就可以mytype a,b;這樣方便了。

2。便於後期修改。舉例:

你可以有個很多物件是int型的,那麼你在第1次寫程式的時候頻繁地寫int a;........int b;......int c;這樣,但是後期你發現要修改程式從int變到char。

難道你每個變數申明的int關鍵字都修改一次?這樣顯然很2,你可以typedef int mytype,申明mytype a;.....mytype b;這樣。

你要轉成char 只要把typedef int mytype換成typedef char mytype就可以。很方便。

3。多人協同開發時可以實現定義好型別名,方便開發。

c++中typedef的用法是什麼?

12樓:義昀欣

const char *cstr;意思是,cstr是乙個指標,這個指標指向乙個字元常量。指標指向的內容不可變。

char *const cstr;意思是,cstr是乙個常量指標,它指向乙個字元。指標本身不可變,指向的內容可變。

typedef char *cstring;定義了乙個字元指標型別cstring。

extern const cstring;

這裡需要考慮了,cstring到底是乙個常量指標呢?還是乙個指向常量的指標?因為cstring代表的是乙個指標型別,const修飾的是這個指標本身,所以,這是乙個常量指標。

它等價於char *const cstr;

13樓:

cstr型別為char *const,而不是const char *,原因在於const給予了整個指標本身以常量性,也就是形成了常量指標char* const。

簡單來說,記住當const和typedef一起出現時,typedef不會是簡單的字串替換就行。 參考資料有typedef的詳細用法,希望對你有用!

14樓:應孝後妝

typedef是重新命名的意思,就是乙個東西起兩個名字。比如:

typedef

height

int;

height

a;就是

inta;的意思,之所以用height,是因為height這時還可以表示高度的意思

我知道在c++中typedef是定義個別名,但這句是什麼意思呢?

15樓:匿名使用者

譚浩強那本《c語言程式設計》中關於用typedef宣告乙個新型別的步驟是這麼說的:

1、先按定義變數的方法寫出定義體(如:int i;)

2、將變數名換成新型別名(如:將i換成count)

3、在最前面加typedef(如:typedef int count)

4、然後可以用新型別名去定義變數

除了最後一步,從第三步倒著來看:

將最前名的typedef去掉,就變成了第二步

即去掉typedef後是乙個定義體,只不過把一般定義體的變數名換成了新型別名(第一步與第二步的變化)。

所以只要看這個定義體中變數名位置上的名字,就知道新型別的名字,也容易看出是定義什麼型別。

1、去掉typedef後變為:

int (winapi *pfnmessagebox)(hwnd, lpcstr, lpcstr, uint utype);

這是宣告乙個函式指標,變數名為pfnmessagebox(即新型別名)

2、去掉typedef後變為:

string array[10];

這應該是定義乙個string型別的陣列,變數名為array(即新型別名)

16樓:匿名使用者

自定義變數型別;

typedef 宣告,簡稱 typedef,功能:為現有型別建立乙個新的名字。

比如:程式編寫者常常使用 typedef 來編寫更美觀和可讀的**。

所謂美觀:typedef 能隱藏笨拙的語法構造、平台相關的資料型別,從而增強可移植性和程式的可維護性。

程式設計中:使用typedef一般有兩個目的,①給變數乙個易記且意義明確的新名字,

②簡化一些比較複雜的型別宣告。

如果要仔細的了解typedef請見

c語言關鍵字,C語言關鍵字有哪些?

c語言的關鍵字都是小寫的。庫函式名不屬於c語言關鍵字。標準c語言貌似有32個關鍵字。一類是基本資料型別的 void char int float short long double signed unsigned 一類是變數儲存類別的 static extern auto register vola...

excel中根據主要關鍵字次要關鍵字和第三關鍵字排序為什麼有時候分類分不到一起去

出現此問題的原因為 關鍵字設定不正確。正確的操作方法如下 1 第一步,開啟要排序的excel工作簿,見下圖,轉到下面的步驟。2 第二步,執行完上面的操作之後,選擇要排序的區域,見下圖,轉到下面的步驟。3 第三步,執行完上面的操作之後,單擊選單欄中的 排序 功能,然後在彈出選單中選擇主要關鍵字,見下圖...

關鍵字的分類?關鍵字指的是什麼

荊州seo徐國祥剛剛寫了篇文章關鍵詞的分類,可能比較適合你,希望你有時間去看看,下面我是選擇一部分內容 搜尋荊州seo徐國祥可以找到我部落格 非關鍵詞就是指那些搜尋量很大,模板很不准的詞語,通常都是代表乙個行業或者乙個事物,比喻地產,金融,服裝等等,這樣的詞,除非你是很有實力的公司,捨得投入人力和資...

在C中new有什麼作用啊,c 中New關鍵字有什麼作用

1.范型約束,指定型別t,必須有無參的公共建構函式where t new 2.public new void calc 這裡new是修飾符。子類對基類已經存在的非abstract成員 可以是虛方法 其他普通成員 進行覆蓋不用new會編譯出錯。父類有個方法叫a,子類也想用這個名 方法內容不同 但是不想...

c語言的關鍵字都有哪些,什麼作用

c語言中的關鍵字是c語言開發者在開發時定義有特殊 意義的字元,編譯器通過這些關鍵字編譯器才能對你的 進行解釋 額,關鍵字有各種作用呀,不同型別的作用不同 用於型別定義的,如int float double等 用於控制程式執行的,如if,for while等 c語言中有哪些關鍵字,功能是什麼?c語言關...