《C語言筆記 typedef關鍵字的用法》

2022-05-23 15:18:11 字數 1567 閱讀 9237

一,typedef關鍵字

1,c語言中的型別一共有兩種:一種是編譯器定義的原生型別(基礎資料型別,比如int char float double);第二種是使用者自定義的型別,不是語言自帶的而是程式設計師自己定義的(比如陣列指標、指標陣列、函式指標、結構體型別、函式型別等)。

2,有時候自定義型別太長了,用起來不方便,所有用typedef給它重新命名乙個短點的名字。

3,需要注意的是,typedef是給型別重新命名,也就是typedef加工出來的是資料型別,而不是變數(不會分配記憶體)。型別是乙個資料模板,變數是乙個實在的資料。型別是不佔記憶體的,而變數是要佔記憶體的。

二,typedef與#define的區別

typedef char * typcahr;

#define depchar  char * 

#includetypedef 

char *tychar;

#define dechar char *

int main(void

)

三,typedef和結構體

1,結構體在使用時都是先定義結構體型別,再用結構體型別去定義變數。

2,c語言語法規定,結構體型別使用時必須是struct+結構體型別名+結構體變數名;這樣的方式來定義變數。

3,使用typedef一次定義兩個型別,分別是結構體變數型別,和結構體變數指標型別。

四,tpyedef和const

typedef int *pint;

1,const pint p2;  實際的意思並不是 const int *p2,而是int *const p2;

2,pint const p2;相當於 int *const p2;

3,要想定義 const int *p2; 只能typedef const int * cpint;    cpint  p2;

五,typedef和函式指標

比如 char *strcpy(char *dest,const char *src)的函式指標。

typedef char *( *pstrcpy)(char *,const char *);

pstrcpy p1;   //p1是乙個指向strcpy函式型別的指標

pstrcpy p2;  //p2是乙個指向strcpy函式型別的指標

#include#include

typedef

char *(*pstrcpy)(char *,const

char *);

int main(void);

char b[32] = ;

pstrcpy p1,p2;

p1 =strcpy;

p2 =strcpy;

p1(a,

"hello world");

p2(b,

"hello world");

printf(

"a = %s \n

",a); //

hello world

printf("

b = %s \n

",b); //

hello world

}

(C語言)typedef關鍵字

typedef 定義 c 語言提供了typedef關鍵字,您可以使用它來為型別取乙個新的名字。下面的例項為單位元組數字定義了乙個術語byte typedef unsigned char byte 在這個型別定義之後,識別符號 byte 可作為型別unsigned char的縮寫,例如 byte b1...

C語言的 typedef 關鍵字

typedef 是 c 語言的關鍵字,用於宣告基本資料型別的別名 如 typedef int a 則宣告了乙個 int 型別的別名 a,這個 a 不再是乙個變數,而是 int 的別名,可以用 a 來代替 int 來宣告其他整形變數,如 a name 就是宣告了乙個整形變數 name 型別別名和型別名...

C語言之關鍵字typedef

c語言提供了乙個 型別定義 的功能 typedef 用此來建立新的資料型別名。需要強調的是,從任何意義上來講,typedef 的宣告並沒有建立乙個新的型別,它只是為某個已經存在的型別增加乙個新的名稱而已。typedef 宣告也沒有增加任何新的語義,通過這種方式宣告的變數與通過普通方式宣告的變數具有完...