2016-03-04 68 views
-1

我是C和指針的新手(所以請在我身上輕鬆一下)。 我使用的參考書,我在這些代碼沒有解釋任何來到(所有這說的是:函數名是一個指向函數):函數void * a和指針函數作爲參數

int isBigger(void *a,void *b,int (*f)(void *,void *)){ 
    return f(a,b) 
} 

我的問題是:

  1. 什麼是void * a?
  2. 是* f指向函數的指針嗎?
  3. 什麼是void *?它與void * a有關嗎?

回答

3

由於給定不會編譯的代碼片段,我想這是你的意思:

int isBigger(void *a,void *b,int (*f)(void *,void *)){ 
    return f(a,b); 
} 

void*是可以指向任何一個指針。有關更多信息,請參閱this post

f是一個函數指針,它需要兩個void*並返回一個int。您可以使用f(a,b)調用該功能。您可以在this post中找到更多示例。