關於C中的typedef,C 中typedef是什麼意思啊

2022-03-06 18:14:34 字數 4266 閱讀 6467

1樓:

typedef是為型別起一個別名,一般是為較長的型別起一個較短的別名,方便使用。

使用格式:

typedef 原型別 原型別別名

定義之後,就可以用型別別名定義變數,而不用寫原型別了。綜上所述,語句:

typedef t *qsharedpointer:: *restrictedbool;

是為「t *qsharedpointer::」型別起了一個「*restrictedbool」的別名,可以用後者代替前者定義變數。

2樓:

就是將*qsharedpointer命名為*restrictedbool

c++中typedef是什麼意思啊

3樓:搜虎哈哈

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

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

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

3.常見的用法如下:

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

4樓:

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

例如:如果有語句

typedef int num;

則語句num a = 5;

等價於語句

int a = 5;

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

5樓:匿名使用者

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

6樓:

typedef dword (pascal *pp)(gg);

typedef struct msg

msg, *gg;

把msg定義成結構 struct msg

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

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

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

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

7樓:潘達

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

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;

8樓:匿名使用者

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關鍵字有什麼作用?

9樓:匿名使用者

就是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;

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

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

10樓:匿名使用者

我來總結一下:

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位元組大小的字元陣列我所知道的差不多就這些。

11樓:

定義型別,比如

typedef int myint

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

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

typedef struct studentstu;

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

struct student;

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

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

12樓:

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

typedef struct studentstu;

就是stu是student的另一個名字

13樓:匿名使用者

在 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 中的問題,一個關於C 中「 」的問題

按照你的思路這樣改就可以了,原來 1的下標是會越界的,編譯都無法通過,因為 放在後就直接越界了,但是先 就不會了,還有陣列的下標要改成10,要不然就不對應了。對於你的補充問題不是賦值不成功,其實已經成功賦值了,只是如果你把 放在ix vec後面的話是原來ix vec為0,但只執行賦值語句了以後ix ...

關於C 中missing function header的問題急

include using namespace std int grade 別放在 main 和右大括號中間int main 後邊沒有分號 include 應該 為 include int main int grade 更正部分如下。int main c 程式設計問題 missing functio...

c中如何把陣列作為引數,c中關於陣列作為函式引數的幾種方法

對於陣列 名作為參bai數傳遞,有兩種方du式zhi 1.使用陣列名本身,如以下程式求dao陣列a的最專大值 include int max int x,int n 作為陣列定義形屬式2.用指標作為引數,這就簡單了,如 int max int x,int n 作為陣列定義形式int main voi...