你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> 用函數指針變量做函數的參數

用函數指針變量做函數的參數

編輯:IOS技巧綜合
[摘要]本文是對用函數指針變量做函數的參數的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。 有些時候我們無法及時確定函數的處理邏輯,程序需要動態的改變,這時我們可以通過定義函數指針來實現。 舉個🌰,我們有加法,乘法兩個函數,如果還要一個除法我們怎麼做,可能我們會想到,這好辦,創建一個除法的函數,分分鐘搞定。如果客戶還要變怎麼辦?數據還是那些數據,只是函數的功能改變了。那有點太麻煩了。我們定義一個中間函數,其他函數作為指針參數傳遞進來,這樣就可進行動態的處理了。
#import <Foundation/Foundation.h>

//加法
int sum(int val)
{
    return val+val;
    //NSLog(@"%d",val+val);
}//over sum

//乘法
int chengfa(int val)
{
    return val*val;
    //NSLog(@"%d",val*val);

}//chengfa over

//中間體
void map(int data,int(*fn)())
{
    int* p=&data;
    NSLog(@"%d, ",(*fn)(*p));

}//map over


//main
int main(int argc, const char * argv[]) {
    @autoreleasepool {//這裡會自動釋放,類似c#中的using,
        int data=20;
        NSLog(@"執行加法:");
        map(data,sum);
        
        NSLog(@"執行乘法");
        map(data,chengfa);
        // insert code here...
        //NSLog(@"Hello, World!");
    }
    return 0;
    
    
}//mainOver
----------------結果-------- 2017-04-24 21:15:38.204146+0800 zhizhenLianxi[1601:141357] 執行加法: 2017-04-24 21:15:38.204358+0800 zhizhenLianxi[1601:141357] 40, 2017-04-24 21:15:38.204412+0800 zhizhenLianxi[1601:141357] 執行乘法 2017-04-24 21:15:38.204429+0800 zhizhenLianxi[1601:141357] 400, Program ended with exit code: 0 ------------------------------- 如果我們要增加除法功能,只需要添加一個除法的函數即可
int chufa(int val)
{
    return val/val;
    //NSLog(@"%d",val/val);

}//chengfa over
----------結果----- 2017-04-24 21:35:46.236714+0800 zhizhenLianxi[1645:159476] 執行除法 2017-04-24 21:35:46.236742+0800 zhizhenLianxi[1645:159476] 1
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved