c語言中通過函式指標實現函式過載

2021-05-24 00:28:03 字數 716 閱讀 1214

我們都知道過載是c++物件導向的特性。c語言中是不存在的。所謂過載簡單來說就是乙個函式名可以實現不同的功能,要麼輸入引數不同或者引數個數不同,要麼返回型別不同。例如函式add(),在c++中可以輕易實現int,double等不同型別引數的相加功能,而在c語言中卻不能這樣實現。c語言中實現過載功能,或者準確來說是類似過載的功能,可以通過函式指標的方式來實現。下面為演示**:

typedef struct _int_param int_param;

typedef struct _double_param_ double_param;

typedef void* (*addfunc)(void*);

void* int_add_func(void* wparam)

void* double_add_func(void* wparam)

void* add_func(addfunc f, void* wparam)

int test()

;double_param val2 = ;

void* res1 = add_func(int_add_func, &val1);

int result1 = *((int*)res1);

void* res2 = add_func(double_add_func, &val2);

double result2 = *((double*)res2);

return 0;

}

C語言中的函式指標

開啟去年6月的乙個test.cpp檔案,發現對裡面測試的函式指標幾乎沒有印象了。溫故而知新,於是重新找到ansi c 裡面的說明 除了宣告指向整型數字 雙精度型數字和c語言其他資料型別的指標外,指標也能夠被宣告指向乙個函式 包含乙個函式的位址 指向函式的指標是可能的,因為函式名像陣列名一樣,它們本身...

C語言中的函式指標

1.函式指標的定義 顧名思義,函式指標就是函式的指標。它是乙個指標,指向乙個函式。2.函式指標的使用 我們定義了乙個函式指標,但如何來使用它呢?先看如下例 include include char fun char p1,char p2 int i 0 i strcmp p1,p2 if 0 i r...

C語言中的函式指標 指向函式的指標

函式指標是什麼?在定義乙個函式之後,在編譯後,系統會為函式分配一段儲存空間。指標用來儲存位址的,而函式指標也是一樣,只不過儲存的是函式儲存空間的起始位址.如何在c語言中使用函式指標int p int int int代表的是指標變數名,兩個int代表,函式引數有兩個,且都為int型,當然以上定義只為示...