gcc编译器对待函数声明与TurboC的区别

发表于:2007-07-04来源:作者:点击数: 标签:
无意中发现,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变量是怎么安排的。

原文转自:http://www.ltesting.net