1. 程式人生 > >函式指標定義的寫法

函式指標定義的寫法

typedef int (*initcall_t)(void);
typedef void (*exitcall_t)(void);
initcall_t *call;
int (*timer_callback_fn_t) (void *pData);是一個函式指標,所指向的函式有一個引數,引數型別為void *
返回型別為int型。

用個typedef,當你想定義上面那個函式指標變數時,就可以,這樣定義

timer_callback_fn_t pMytimer_fn;去定義一個名為pMytimer_fn的函式指標變數,而不用寫成
int (*timer_callback_fn_t) (void *pData) pMytimer;
這麼一長串。 

指標,你總知道吧,指向字元的指標char *,你也應該知道吧,指向整型的指標,int *,你也應該知道吧,那指向函式的指標呢,這裡就是了。

只不過說明一個函式,還要說明這個函式,有無引數,引數什麼型別,有幾個,有無返回值,返回什麼,這麼一搞起來,使得函式指標的定義顯得非常的羅嗦。

可以用p代替,只是個名字而已,寫得長點只是給你一看就知道大概是幹嘛用的。

typedef int (*abc) (void *efg);
abc p;

名字是隨便取的。

相關推薦

函式指標定義寫法

typedef int (*initcall_t)(void);typedef void (*exitcall_t)(void); initcall_t *call; int (*timer_callback_fn_t) (void *pData);是一個函式指標,所指向的函式有一個引數,引數型別為void

函式指標定義方式

函式指標        int  *f ( );           f是一個函式,返回整型指標。     int  (*f)( );          f是一個函式指標,它所指向的函式返回一個整數值。     int  *( *f )( );        f是一個

[C++] 使用 typedef 簡化函式指標定義

函式型別由返回型別和引數列表決定,與函式名無關:// pf 指向一個返回bool,且有兩個const string& 型別引數的函式,*pf 必須用括號括起來,否則會變成函式宣告 bool (*pf)(const string &, const string

C++函式指標定義方法

首先定義一個函式,方便進行呼叫int Examples(int a,int b) { return a+b; } 方法一:定義一個函式指標/****************************************** 定義一個函式指

當結構體遇上巨集定義,以及函式指標的高階寫法(結構體中能用巨集定義一個函式?)

一、結構體中可以定義一般的巨集定義 如: struct aaa { #define STATUS_1 100 #define STATUS_2 200 #define STATUS_3 300 ........ }; 首先

函式指標作為某個函式的引數及定義函式指標(回撥函式

轉載於:http://blog.csdn.net/vlily/article/details/7244682 轉載於:http://blog.csdn.net/shengnan_wu/article/details/8116935 轉載於:http://blog.csdn

C語言:理解函式指標陣列和定義

函式指標陣列和定義 陣列是一個存放相同型別資料的儲存空間,那我們已經學習了指標陣列,比如:     int *arr[10];//陣列的每個元素是int* 那要把函式的地址存到一個數組中,那這個陣列就叫函式指標陣列,那函式指標的陣列如何定義呢?   int (

C語言定義函式指標(typedef)

#include <stdio.h>int add(int a, int b){    return (a + b);}int sub(int a, int b){    return (a - b);}//使用typedef給函式指標型別一個別名//typede

cpp: 使用typedef定義函式指標

Java在對於oop的封裝上面抽象程度非常的高;但是對於函式,java裡面的函式或者方法,可以說是非常基礎或者低階。縱觀java的語言特性,沒有對函式有更高程度的封裝。 但是,除了在oop方面的抽象,

理解函式指標定義 .理解函式指標陣列和定義,

陣列指標概念:陣列指標是指標,只要是指標他就佔4個位元組;例如: 整形指標:int *p;能夠指向整形資料的指標   浮點型指標:float *p;能夠指向浮點型的資料的指標那麼陣列指標,同樣的理解就是指向陣列的指標。Eg:  int (*p)[10]解釋:這裡的p由於小括號

c語言,定義多個指標寫法,多個指標的宣告

先說明正確的多個指標宣告應該為:例:int *a,*b,*c,*d; 按照常理定義變數應該為:型別 變數名 如:int a; 但是定義指標時,int *a;依照 型別 變數名 的規則來看,就像定義了一個int型的,名字為“*a”的變數,但是實際上我們宣告的變數為int*型的

typedef 定義函式指標(匿名函式)

        第一行定義了一個指標變數pFun。首先我們根據前面提到的“形式1”認識到它是一個指向某種函式的指標,這種函式引數是一個int型,返回值是char型別。只有第一句我們還無法使用這個指標,因為我們還未對它進行賦值。         第二行定義了一個函式glFun()。該函式正好是一個以int為引數

C語言回撥函式定義寫法

1 定義和使用場合 回撥函式是指 使用者自己定義一個函式,實現這個函式的程式內容,然後把這個函式(入口地址)作為引數傳入別人(或系統)的函式中,由別人(或系統)的函式在執行時來呼叫的函式。函式是你實現的,但由別人(或系統)的函式在執行時通過引數傳遞的方式呼叫,這就是所謂的回撥函式。簡單來說,就是由別人的函式

C/C++函式指標(typedef簡化定義)

學習要點:         1,函式地址的一般定義和typedef簡化定義;         2,函式地址的獲取;         3,A函式地址作為B函式引數的傳遞;     函式存放在記憶體的程式碼區域內,它們同樣有地址.如果我們有一個int test(int a)的函

C語言結構體定義函式指標的簡單高效的使用例子

對於大型專案來說,struct的使用會使整個程式碼更加簡約,閱讀起來和寫起來都更加簡便,以後就要多嘗試這種用法了。下面是一個簡單例子,可以參考一下。 #include <stdio.h>

C語言結構體及typedef關鍵字定義結構體別名和函式指標的應用

結構體(struct)的初始化 struct autonlist { char *symbol; struct nlist nl[2]

C++學習14:使用typedef定義函式指標型別

最近在HM中遇到了typedef函式指標,現在來學習一下。 1.函式指標 直接從例子入手,首先來看一個簡單的函式指標: #include"iostream" using namespace std; int cal_max(int x,in

C++之利用typedef定義函式指標

進入正文: 程式碼簡化, 促進跨平臺開發的目的. typedef 行為有點像 #define 巨集,用其實際型別替代同義字。 不同點:typedef 在編譯時被解釋,因此讓編譯器來應付超越前處理器能力的文字替換。用法一:typedef int (*MYFUN)(int, int);  這種用法一般用在給函式定

用typedef定義函式指標的好處

typedef可以用於定義函式指標型別: 【語法】 typedef <返回型別> (*<函式型別名>)(引數表) typedef <返回型別> (<類名>::*<函式型別名>)(引數表) 【用途】 1、可以用來定義該函式型別的函式指標,就不用每次使

定義使用函式指標

且不論語法,有兩種不同形式的指標函式: 一個是指向普通的C函式的指標和C++的靜態成員函式,另外一個是指向C++的非靜態成員函式的指標。這兩者的基本區別是所有指向非靜態成員函式的指標都 需要這個隱含定義:指向本類的一個This指標。注意:這兩種函式指標彼此不相容。 既然一個函式指標實際上和一個變數沒有什麼區