5 回答

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

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

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

TA貢獻1876條經驗 獲得超5個贊
可以隨意安排位置,不過需要遵循一條規則,在main()中調用的任何函數,其聲明一定要出現在main()函數之前(特別注意,文件包含指令#include需要出現在main()之前)
- 5 回答
- 0 關注
- 1643 瀏覽
添加回答
舉報