5 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
C語言不限定函數(shù)源代碼在源文件中的位置,但是函數(shù)內(nèi)的標識符同函數(shù)外的標識符一樣也必須滿足使用的標識符先聲明后引用的原則。編譯器對于每個編譯單元(源文件)順序掃描源代碼,如果之前遇到過聲明,那么會根據(jù)聲明的內(nèi)容假定它的定義在當前源文件中或者在另外的源文件或庫文件中,這樣不會出現(xiàn)錯誤。否則就會當作未定義的標識符而產(chǎn)生編譯錯誤。所以main函數(shù)用到的標識符,無論是函數(shù)還是變量還是const限定的常量,都要在用到的地方之前聲明(main本身不用聲明),包括庫函數(shù)。標準庫頭文件通常內(nèi)容是一堆extern庫函數(shù)聲明(函數(shù)定義在另外的庫文件中)和預處理命令,為了能夠使函數(shù)的聲明起到作用,必須#include在main函數(shù)之前,否則這些聲明無效,等于沒#include。(#include僅僅是文本包含指令,本身沒有這個限制。)

TA貢獻1809條經(jīng)驗 獲得超8個贊
因為main作為程序執(zhí)行的入口只可能有一個,所以無論寫在程序的什么位置上,在編譯程序的過程中被識別出來即可,執(zhí)行的時候就從main開始執(zhí)行。
打個比方說,房子蓋好之后,大門無論開在東面還是南面都可以,但只能有一個門,我們進入房間就從這個門進入即可。

TA貢獻1891條經(jīng)驗 獲得超3個贊
main函數(shù)位置可以任意、、但要注意一點、、變量要在使用之前定義、、函數(shù)再調(diào)用前記申明、、main函數(shù)里面的調(diào)用函數(shù)要么在mian里面申明、、要么在那些頭文件緊接下來申明、、只要在mian之前就行、、

TA貢獻1818條經(jīng)驗 獲得超11個贊
可以隨意安排位置,不過需要遵循一條規(guī)則,在main()中調(diào)用的任何函數(shù),其聲明一定要出現(xiàn)在main()函數(shù)之前(特別注意,文件包含指令#include需要出現(xiàn)在main()之前)

TA貢獻1798條經(jīng)驗 獲得超3個贊
如果main中調(diào)用函數(shù),那么這個函數(shù)必須在mani函數(shù)的前面。但是也可以在main函數(shù)的前面聲明。因為代碼是從main 函數(shù)開始,一條一條的順序執(zhí)行的。
例:
abc();
main()
{
abc();
}
abc()
{
//內(nèi)部實現(xiàn)
}
這樣就是在前面聲明。
例2;
abc()
{
//內(nèi)部實現(xiàn)
}
main()
{
abc();//直接調(diào)用,因為abc已經(jīng)在前面定義并且了。
}
- 5 回答
- 0 關注
- 1108 瀏覽
添加回答
舉報