歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

gcc編譯器對待函數聲明與TurboC的區別

無意中發現,gcc的函數調用可以在沒有在main()函數之前聲明就可以使用。 main() func1(); func1() func2() 像這種函數調用是可以在gcc下編譯通過的,也就是說,不聲明就可以使用。各個函數放在文件裡,main.c中不放它們的聲明結果也是可以通過的 ------還有 無意中發現,gclearcase/" target="_blank" >cc的函數調用可以在沒有在main()函數之前聲明就可以使用。

main()

{

    func1();

}

func1()

func2()

像這種函數調用是可以在gcc下編譯通過的,也就是說,不聲明就可以使用。各個函數放在文件裡,main.c中不放它們的聲明結果也是可以通過的 ------還有幾個問題沒弄明白:05.09.06

  • 同一個文件中可以包含幾個函數,這幾個函數上方可以定義全局變量,但是一個可執行文件的其他函數要使用此全局變量必須先做extern的聲明才能使用,為什麼?
  • 他們在內存中,編譯時是怎麼安排的?
  • 2。頭文件內函數聲明的順序與他們的相互調用關系應該沒有什麼關系,那麼,編譯連接以及執行時,函數調用過程是怎樣的?全局變量,extern變量是怎麼安排的。

Copyright © Linux教程網 All Rights Reserved