官术网_书友最值得收藏!

2.11 static關(guān)鍵字

在Objective-C中,可以使用static關(guān)鍵字定義靜態(tài)變量,這種變量可以在代碼執(zhí)行過程中只初始化一次,然后就會一直保存最新的數(shù)據(jù)。

如下面的代碼,我們定義了fn()函數(shù),其中包含一個靜態(tài)變量counter,當我們每次調(diào)用這個函數(shù)時,counter就會加1,然后顯示調(diào)用的次數(shù)。

    void fn()
    {
        static int counter = 0;
        counter++;
        NSLog(@"第 %i次調(diào)用fn()函數(shù)", counter);
    }
    int main(int argc, const char *argv[])
    {
        @autoreleasepool {
            for(int i = 0; i < 30; i++) {
                fn();
            }
        }
        return 0;
    }

代碼會顯示共調(diào)用了30次fn()函數(shù),其中的for語句結(jié)構(gòu)屬于循環(huán)語句結(jié)構(gòu)的一種,第3章會討論代碼流程控制的相關(guān)內(nèi)容。

在fn()函數(shù)中,變量counter定義為靜態(tài)的,它在程序運行過程中只會進行一次初始化,也就是在定義時賦值為0。然后,當我們每次調(diào)用fn()函數(shù)時,counter變量并不會重新定義,而是保留最新的值。

此外,我們還可以在const定義的常量前使用static關(guān)鍵字,如下面的代碼。

    static const NSUInteger flag0 = 0x1 << 0;
    static const NSUInteger flag1 = 0x1 << 1;
    static const NSUInteger flag2 = 0x1 << 2;
主站蜘蛛池模板: 蓝田县| 张家界市| 蕉岭县| 和政县| 巍山| 胶州市| 冀州市| 上蔡县| 富源县| 谢通门县| 民和| 房产| 右玉县| 托克托县| 社旗县| 平塘县| 永德县| 宜昌市| 资阳市| 太白县| 逊克县| 淮南市| 嘉义县| 阿拉善左旗| 溧水县| 莫力| 吉林省| 潮安县| 乌鲁木齐县| 罗定市| 乌鲁木齐县| 墨江| 商河县| 海兴县| 长治市| 鲜城| 琼海市| 确山县| 武强县| 无锡市| 蒙自县|