1、不能。C語言中的static函數(shù):內(nèi)部函數(shù)和外部函數(shù) 函數(shù)一旦定義后就可被其它函數(shù)調(diào)用。但當(dāng)一個源程序由多個源文件組成時,在一個源文件中定義的函數(shù)能否被其它源文件中的函數(shù)調(diào)用呢。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,老城網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:老城等地區(qū)。老城做網(wǎng)站價格咨詢:028-86922220
2、static修飾一個函數(shù),則這個函數(shù)的只能在本文件中調(diào)用,不能被其他文件調(diào)用。Static修飾的局部變量存放在全局?jǐn)?shù)據(jù)區(qū)的靜態(tài)變量區(qū)。C++的static用法:面向過程程序設(shè)計中的static和面向?qū)ο蟪绦蛟O(shè)計中的static。
3、其實函數(shù)默認(rèn)是外部的,只要在其他文件中聲明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件調(diào)用。
靜態(tài)函數(shù)和變量在其他文件中是完全不可見的,這是錯誤的的地方樓上,即使有出口extern聲明函數(shù)不能在編譯的時候沒有通過,將上報的靜態(tài)類型錯誤,不能導(dǎo)出。 。 。
其中靜態(tài)函數(shù)是有static修飾的函數(shù),如果沒有,則為非靜態(tài)函數(shù)(全局函數(shù))。當(dāng)整個程序只有一個C文件時,二者沒有區(qū)別。當(dāng)程序是由多個C文件組成時,二者的作用域,即可使用的范圍不同。
a.h:3: error: previous declaration of ‘void a()’這里就是因為a函數(shù)是static類型,不能導(dǎo)出,把static去掉這里就可以編譯通過了。。
不能,C語言中的static函數(shù),內(nèi)部函數(shù)和外部函數(shù),函數(shù)一旦定義后就可被其它函數(shù)調(diào)用。當(dāng)一個源程序由多個源文件組成時,在一個源文件中定義的函數(shù)能否被其它源文件中的函數(shù)調(diào)用,C語言又把函數(shù)分為兩類。
static變量 static聲明的變量為“靜態(tài)局部變量”,變量內(nèi)容具有持久性。該局部變量的值在函數(shù)調(diào)用結(jié)束之后不會消失,而仍然保留其原值。
既不是存放在堆,也不在棧里,應(yīng)該在代碼區(qū)。如果是全局靜態(tài)對象(或變量)的優(yōu)勢:可以在本c/c++文件中全局可訪問,加強(qiáng)了通訊。劣勢:可能導(dǎo)致結(jié)構(gòu)上不清晰;被其他函數(shù)修改而造成邏輯混亂。存放位置:在堆里。
1、內(nèi)部函數(shù)也稱為靜態(tài)函數(shù),但此處靜態(tài)static 的含義已不是指存儲方式,而是指對函數(shù)的調(diào)用范圍只局限于本文件。外部函數(shù)在整個源程序中都有效,其定義的一般形式為extern 類型說明符 函數(shù)名形參表。
2、只能在本文件中使用,無法跨文件。靜態(tài)函數(shù)是函數(shù)的一種,函數(shù)包括靜態(tài)函數(shù)和非靜態(tài)函數(shù)兩種。其中靜態(tài)函數(shù)是有static修飾的函數(shù),如果沒有,則為非靜態(tài)函數(shù)(全局函數(shù))。
3、static在c語言中是私有、靜態(tài)意思。用于在函數(shù)中聲明“靜態(tài)變量”用,在每一次調(diào)用后,該變量并不在函數(shù)返回時立即釋放,變量中保存的值,可以保留到下一次調(diào)用時繼續(xù)有效。私有就是隱藏。static函數(shù)只能聲明后的本文中調(diào)用。