C/C++中的声明与定义
含義
聲明(Declaration), 用于告訴編譯器被聲明的函數(shù)/變量的存在, 及它們的類型/調(diào)用格式信息, 以檢查是否被正確調(diào)用. 聲明不分配內(nèi)存空間.
定義(Definition), 用于告訴編譯器被聲明的函數(shù)/變量的存在位置, 會(huì)分配內(nèi)存空間.
變量/函數(shù)在被使用之前一定要被聲明. 聲明和定義可以同時(shí)進(jìn)行.
可以有多個(gè)聲明, 但只能有一個(gè)定義.
函數(shù)的聲明與定義
函數(shù)的Declaration由函數(shù)的簽名(函數(shù)名+參數(shù)列表)與return類型, 外加一個(gè)分號(hào)組成. 如:
void fn(int a);定義則有函數(shù)實(shí)體:
void fn(int a) {printf("%d\n", a); }C與C++的聲明有一個(gè)不同之處:
void fn();不帶參的聲明在C里代表可以傳入任何參數(shù), 而在C++中則代表不傳入任何參數(shù).
例如下面這段代碼:
在C語(yǔ)言中, 它可以通過(guò)編譯并執(zhí)行, 但在C++中則不行.
若函數(shù)第一次出現(xiàn)時(shí)就定義了函數(shù)體, 則代表聲明與定義同時(shí)進(jìn)行.
變量的聲明與定義
大多同時(shí)進(jìn)行. 也可以用關(guān)鍵字extern來(lái)告訴編譯器, 這僅僅是個(gè)聲明:
int a; //聲明與定義同時(shí)進(jìn)行 extern int b; //只有聲明, 定義不在此處.其它語(yǔ)言中的類似語(yǔ)法
- Java中的abstract方法及interface, 很純粹的declaration.
- Python中的global關(guān)鍵字與extern作用類似.
轉(zhuǎn)載于:https://www.cnblogs.com/dengdan890730/p/6217438.html
總結(jié)
以上是生活随笔為你收集整理的C/C++中的声明与定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信小程序开发教程、小程序资讯、小程序d
- 下一篇: OpenCV测试摄像头帧率