《C關鍵字分析》之typedef與callback

2021-07-09 08:38:06 字數 1030 閱讀 8278

一、typedef定義函式指標型別

1.原始碼

2.c#include 

typedef

int (*hal_call_back)(int,int);  

int test(int a,int b);  

int add(void* func,int a,int b);  

int main()  

int test(int a,int b)  

int add(void* func,int a,int b)  

2.編譯執行

gcc -o 2 2.c

./2[plain]view plain

copy

tk------>>>>result is 7  

二、函式指標型別

1.理解int (* func)(int ,int )

在上面的表示式中從左到右有四個運算子()、*、();

運算子的優先順序()比*高,()的結合方向是自左到右,*的結合方向是自右到左;

()結合是從左到右,這是定義了乙個指標變數func,接下來是後括號,表明是定義乙個函式型別的指標func;

接下來說明該變數func是乙個指向,引數是兩個int、返回值是乙個int的函式,的指標變數。

2.原始碼

1.c[cpp]view plain

copy

#include 

//typedef int (*hal_call_back)(int,int);

int test(int a,int b);  

int add(int func(int,int),int a,int b);  

int main()  

int test(int a,int b)  

int add(int func(int,int),int a,int b)  

2.編譯和執行

gcc -o 1 1.c

./1tk------>>>>result is 7 

(C語言)typedef關鍵字

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

列舉 typedef關鍵字

1 列舉型別介紹及定義 目前為止接觸到的資料型別 基本資料型別 指標型別 空型別 void 構造型別 陣列 結構體 列舉型別 a 列舉型別 列舉型別定義的一般形式 enum 列舉型別名 在列舉值中應羅列出所有可用值。這些值也稱為列舉單元。列舉型別是一種基本型別,而不是一種構造型別,因為它不能再分解任...

C語言的 typedef 關鍵字

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