objective-C中程式碼區塊中的本地變量,__block前綴和static全域變量
巴扎黑
巴扎黑 2017-04-24 09:13:55
0
1
534

程式碼如下:
typedef void (^fun) (double a, double b);
double c = 3;
fun multiply = ^(double a, double b) { c = a * b; };
multiply(4, 5);
printf("c = %fn", c);

注意到這裡用了一下typedef,然後問題就是變數c是在multiply定義時一起宣告的,c是作為常數來使用的,也就是不能執行c = a * b;這個運算。如果想要修改c的話,一種方法是增加__block前綴?也就是:__block double c = 3;另一種是把c宣告為static全域變數? 如:static double c = 3;

這兩種方法都是合理的嗎?求解答:)

巴扎黑
巴扎黑

全部回覆(1)
PHPzhong

使用__block的方法是可行的,但是static應該這樣寫:

static double c;
c = 3;

想了解這個問題的本質,建議閱讀這本書《Objective-C高級程式設計 iOS與OS X多執行緒與記憶體管理》

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!