C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平臺。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言最初的標準。
typedef是在計算機編程語言中用來為復雜的聲明定義簡單的別名,與宏定義有些差異。它本身是一種存儲類的關鍵字,與auto、extern、mutable、static、register等關鍵字不能出現在同一個表達式中。
c語言中typedef的用法
1.常規變量類型定義
例如:typedef unsigned char uchar
描述:uchar等價于unsigned char類型定義 uchar c聲明等于unsigned char c聲明
2.數組類型定義
例如: typedef int array[2];
描述: array等價于 int [2]定義; array a聲明等價于int a[2]聲明
擴展: typedef int array[M][N];
描述: array等價于 int [M][N]定義; array a聲明等價于int a[M][N]聲明
3.指針類型定義
例如: typedef int *pointer;
描述: pointer等價于 int *定義;pointer p聲明等價于int *a聲明
例如: typedef int *pointer[M];
描述: pointer等價于 int *[M]定義 pointer p聲明等價于int *a[M]聲明明
4.函數地址說明
描述:C把函數名字當做函數的首地址來對待,我們可以使用最簡單的方法得到函數地址
例如: 函數:int func(void); unsigned long funcAddr=(unsigned long)func, funcAddr的值是func函數的首地址
5.函數聲明
例如: typedef int func(void); func等價于 int (void)類型函數
描述1: func f聲明等價于 int f(void)聲明,用于文件的函數聲明
描述2: func *pf聲明等價于 int (*pf)(void)聲明,用于函數指針的生命,見下一條
6.函數指針
例如: typedef int (*func)(void)
描述: func等價于int (*)(void)類型
func pf等價于int (*pf)(void)聲明,pf是一個函數指針變量
識別typedef的方法:
a)。第一步。使用已知的類型定義替代typdef后面的名稱,直到只剩下一個名字不識別為正確
b)。第二步。未知名字為定義類型,類型為取出名稱和typedef的所有部分,
c)。第三部。定義一個變量時,變量類型等價于把變量替代未知名字的位置所得到的類型
評論
查看更多