static +函數(shù)名

在一般的函數(shù)前面加上static,作用是:
加了static后表示該函數(shù)失去了全局可見性,只在該函數(shù)所在的文件作用域內(nèi)可見
當(dāng)函數(shù)聲明為static以后,編譯器在該目標(biāo)編譯單元內(nèi)只含有該函數(shù)的入口地址,沒有函數(shù)名,其它編譯單元便不能通過該函數(shù)名來調(diào)用該函數(shù),這也是對1的解析與說明

在類的成員函數(shù)前面加上static標(biāo)志符:
成員函數(shù)是屬于類的,而非對象的,也就是所有該類的對象共同擁有這一個成員函數(shù),而不是普通的每個對象各自擁有一個成員函數(shù)# 歡迎使用Markdown編輯器寫博客

轉(zhuǎn)https://blog.csdn.net/lulu_6666/article/details/79570335

測試

//c.h
static void a();
void b();
//b.cpp
#include "c.h"
#include <iostream>
using namespace std;
static void a(){
    cout<<"lala"<<endl;
}

void b(){
    a();
}

實驗一:

#include "c.h"
int main(){
    b();
}

輸出:lala
實驗二:

#include "c.h"
int main(){
    a();
}

輸出:In file included from a.cpp:1:0:
c.h:5:13: warning: ‘void a()’ used but never defined [enabled by default]
static void a();
^
/tmp/ccUcWE5P.o: In function main': a.cpp:(.text+0x5): undefined reference toa()'
collect2: error: ld returned 1 exit status

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容