static在c語言中是私有、靜態(tài)意思。
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的羅甸網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
用于在函數(shù)中聲明“靜態(tài)變量”用,在每一次調(diào)用后,該變量并不在函數(shù)返回時(shí)立即釋放,變量中保存的值,可以保留到下一次調(diào)用時(shí)繼續(xù)有效。
私有就是隱藏。static函數(shù)只能聲明后的本文中調(diào)用。static全局變量只能聲明后的本文中調(diào)用。static局部變量只能聲明后的本函數(shù)調(diào)用
靜態(tài)就是一直存在,相對于每次調(diào)用動(dòng)態(tài)分配而言。static函數(shù)未驗(yàn)證是否每次調(diào)用代碼地址都是一致的。static全局變量生命周期到程序或進(jìn)程結(jié)束。static局部變量生命周期到程序或進(jìn)程結(jié)束。
static的使用和作用
靜態(tài)全局變量。全局變量前加static,修飾全局變量為靜態(tài)全局變量,改變?nèi)肿兞康目梢娦浴lo態(tài)局部變量。局部變量前加static,修飾局部變量為靜態(tài)局部變量,改變局部變量的銷毀時(shí)期。靜態(tài)函數(shù)。函數(shù)返回類型前加static,修飾函數(shù)為靜態(tài)函數(shù),改變函數(shù)的可見性。
類的靜態(tài)成員。類成員前加static,修飾類的成員為類的靜態(tài)成員,實(shí)現(xiàn)多個(gè)對象之間的數(shù)據(jù)共享,并且使用靜態(tài)成員不會破壞封裝性,也保證了安全性。類的靜態(tài)函數(shù),類函數(shù)前加static,修飾類的函數(shù)為靜態(tài)函數(shù),減少資源消耗,不需要實(shí)例化就可以使用。
需要注意:1. 函數(shù)的靜態(tài)變量,初始化的語句值只在第一次被調(diào)用時(shí)執(zhí)行
2. 下一次調(diào)用時(shí)的f的值是上一次調(diào)用之后f的值
fac(1) f = 1; f=f*n; f= 1;
fac(2) f= f*n; f=2;
fac(3) f= f*n; f=6;
fac(4) f= f*n; f=24;
fac(5) f= f*n; f= 120;
樓上只說一半,可致電A和B是兩個(gè)功能確實(shí)使用包括添加a.cpp和b.cpp的main.cpp里面使用包括實(shí)際的相應(yīng)的代碼的位置。真的做的項(xiàng)目沒有這樣做,并正在使用的頭文件,
靜態(tài)函數(shù)和變量在其他文件中是完全不可見的,這是錯(cuò)誤的的地方樓上,即使有出口extern聲明函數(shù)不能在編譯的時(shí)候沒有通過,將上報(bào)的靜態(tài)類型錯(cuò)誤,不能導(dǎo)出。 。 。在
頭文件中加入你的原始文件結(jié)構(gòu):
/ /啊
#包括
使用命名空間std;
無效的(??); BR / / / BH
無效();
然后改變里面的兩個(gè)main.cpp中包括AH和BH編譯:g+ +的main.cpp的a.cpp b.cpp會發(fā)現(xiàn)報(bào)告的錯(cuò)誤:
a.cpp:在函數(shù)'無效():
a.cpp:3:錯(cuò)誤:無效()“被宣布為”外部“和后來的”靜態(tài)“
?。?:錯(cuò)誤:()先前的聲明“無效”
這里是因?yàn)橐粋€(gè)函數(shù)的靜態(tài)類型,你不能出口,擺脫靜態(tài)這里可以編譯通過。 。 。 。
這是靜態(tài)的使用