在C語言中,除系統(tǒng)定義的標準類型和用戶自定義的結(jié)構體、共用體等類型之外,還可以使用類型說明語句typedef定義新的類型來代替已有的類型。typedef語句的一般形式是:
typedef 已定義的類型 新的類型;
例如:
typedef int INTEGER; /*指定用 INTEGER 代表 int 類型*/ typedef float REAL; /*指定用 REAL 代表 float 類型*/
在具有上述typedef語句的程序中,下列語句就是等價的。
int i, j; /*與 INTEGER i,j;*/ float pi; /*與 REAL pi;*/
當然typedef的最常用的作用就是給結(jié)構體變量重命名。
#include<stdio.h> #include<string.h> typedef struct _INFO { int num; char str[256]; }INFO; int main() { struct _INFO A; INFO B; //通過typedef重命名后的名字INFO與struct _INFO完全等價! A.num = 2014; strcpy(A.str,"Welcome to dotcpp.com"); B=A; printf("This year is %d %s\n",A.num,A.str); printf("This year is %d %s\n",B.num,B.str); return 0; }
可以看到typedef可以為關鍵詞改名,使改名之后的INFO類型等價于struct _INFO類型,讓我們在定義這種結(jié)構類型時更方便、省事。
事實上,許多windows開發(fā)中的許多我們未見過的數(shù)據(jù)類型,看起來很難懂,但絕大部分都是通過typedef定義后的基本數(shù)據(jù)類型,大家可以通過追溯變量的定義來了解。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程