眾所周知,我們一般在寫(xiě)程序的時(shí)候,一般會(huì)把函數(shù)聲明放在頭文件(.h)里面,而會(huì)把定義放在.cpp文件里面。
1. 聲明一函數(shù),僅僅是給我們這些程序員提供這個(gè)函數(shù)是干什么的信息,它的形式參數(shù)名其實(shí)沒(méi)有什么實(shí)際的意義,設(shè)置可以只寫(xiě)出參數(shù)的類型就可以了。比如:
//函數(shù)聲明 int add( int a, int b) 或者我們也可以定義成 int add( int , int ) |
2. 定義一個(gè)函數(shù),編譯器就會(huì)為函數(shù)的形參和返回值預(yù)先留出合適的內(nèi)存空間。比如:
1 2 3 4 | int add( int a, int b) { return a+b; } |
由于int所占用的內(nèi)存空間為4個(gè)字節(jié),那么編譯器在處理這個(gè)函數(shù)定義的時(shí)候,就會(huì)預(yù)留出12個(gè)字節(jié)的內(nèi)存空間。(因?yàn)橛羞B個(gè)形式參數(shù)a,b,返回也是一個(gè)int,所以共計(jì)4×3=12個(gè)字節(jié))。
所以聲明與定義最主要的區(qū)別在于,聲明知識(shí)告訴編譯器和我們有這樣一個(gè)函數(shù),而只有在內(nèi)存中編譯器才會(huì)為這個(gè)函數(shù)分配內(nèi)存。
特別注意的是,養(yǎng)成一個(gè)良好的寫(xiě)聲明的習(xí)慣是十分重要的!?。?/p>
聯(lián)系客服