[英]What does the main() function mean for a program
C中的main()函數有什么特別之處? 在我的嵌入式C編譯器中,它告訴程序計數器從哪里開始。 無論首先(作為指令)出現在主要功能中,它都將首先放在閃存中。 那么PC程序呢? 當我們為PC編程時main()的含義是什么?
在托管實現 (基本上,任何具有操作系統的實現)上, main
被定義為程序的入口點。 它是啟動程序時運行時環境將調用的函數。
在獨立實現 (嵌入式系統,PLC等)上,切入點就是實現所說的。 這可能是main
,或者可能是其他的東西。
簡單來說:
除了程序啟動時系統調用它之外, main
功能沒有什么特別之處。
當您的操作系統運行程序時,您的程序需要將控制權交給它。 操作系統只知道在main()
函數中從程序內部開始的位置。
函數main是特殊的 - 您的程序在main的開頭執行。 這意味着每個程序必須有一個主要的地方。 main通常會調用其他函數來幫助執行其工作,一些是您編寫的,另一些是來自為您提供的庫。
你可以在每本可能的C書中找到它。
就C標准而言,主要功能是“C程序”的開始。 但是在標准之外的現實世界中,有硬件,在調用main()之前還需要做其他事情。
在典型的嵌入式系統中,您有一個復位中斷服務程序,在上電復位(或其他復位原因)后結束。 從此ISR中,應按以下順序執行以下操作:
因此,當調用main()時,您可以獲得足夠穩定的環境,以便標准C程序按預期執行。
使用main()作為重置向量是非正統和非標准的。 C標准要求在調用main()之前已初始化靜態存儲持續時間變量。 另外,你真的不想做基本的事情,比如在main()中設置堆棧指針,因為這會搞亂你在main()中的所有局部變量。
主要功能允許C程序找到程序的開頭。 程序啟動時始終調用main函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.