亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問在一個C語言程序中,為什么main函數可以出現在任何地方,不是開頭就要申明么?

請問在一個C語言程序中,為什么main函數可以出現在任何地方,不是開頭就要申明么?

嚕嚕噠 2019-07-10 10:07:56
在一個C語言程序中,為什么main函數可以出現在任何地方,不是開頭就要申明么
查看完整描述

5 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

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

查看完整回答
反對 回復 2019-07-14
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

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

查看完整回答
反對 回復 2019-07-14
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

main函數位置可以任意、、但要注意一點、、變量要在使用之前定義、、函數再調用前記申明、、main函數里面的調用函數要么在mian里面申明、、要么在那些頭文件緊接下來申明、、只要在mian之前就行、、

查看完整回答
反對 回復 2019-07-14
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

可以隨意安排位置,不過需要遵循一條規則,在main()中調用的任何函數,其聲明一定要出現在main()函數之前(特別注意,文件包含指令#include需要出現在main()之前)

查看完整回答
反對 回復 2019-07-14
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

如果main中調用函數,那么這個函數必須在mani函數的前面。但是也可以在main函數的前面聲明。因為代碼是從main 函數開始,一條一條的順序執行的。
例:
abc();
main()
{
abc();
}
abc()
{
//內部實現
}
這樣就是在前面聲明。
例2;
abc()
{
//內部實現
}
main()
{
abc();//直接調用,因為abc已經在前面定義并且了。
}

查看完整回答
反對 回復 2019-07-14
  • 5 回答
  • 0 關注
  • 1643 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號