假設我有一個變量,存儲回調。函數獲取存儲的回調
void* (*function)(int, double);
現在我想創建一個函數,它將返回此回調。我不想讓用戶直接訪問回調函數。這是行不通的:
void* (*)(int, double) getCallback();
我的問題是:這樣的函數的原型是什麼樣的?
假設我有一個變量,存儲回調。函數獲取存儲的回調
void* (*function)(int, double);
現在我想創建一個函數,它將返回此回調。我不想讓用戶直接訪問回調函數。這是行不通的:
void* (*)(int, double) getCallback();
我的問題是:這樣的函數的原型是什麼樣的?
typedef
回調類型:
typedef void* (*pf)(int, double);
pf getCallback();
這也將確保沒有從手動鍵入了錯誤的簽名,這樣的錯誤。
那麼,對於這種直接的語法是
void* (*getCallback())(int, double);
但可能是更好的,更具可讀性是使用一個typedef:
typedef void* (*CallbackFunc)(int, double);
CallbackFunc getCallback();
就像一個魅力,謝謝! – Melon 2012-07-10 08:39:36