对于顺序执行的程序,指令执行顺序是确切宽腔祥的(当然程序指令本身可能存在分支),CPU只需要依序将指令装入指令寄存器圆历,然后再执行即可。
对于有多个处理器(或者多核)的系统,在执行并发程序时,指令执行的顺序是不确切的。即使是执行顺序程序,指令执行了顺序也可能不确慎搏定(聪明的CPU有可能将顺序程序的某些指令块优化成并行指令)。
第一个问题:当你编写好一个程序以后,计算机要先编译以后枯悔,才能执行,编译的过程是至上而下的,如果你的函数定义是在main()函数之前,那么不用声明,就可以直接在main()函数中调用,因为计算机在编译的过程中已经知道了这个函数了,但是如果你的函数定义是在main()函数之后,且main()函数中需要调用没游正它,则需要在调用之前声明,原因很简单,就是告诉计算机你下面要调用这个函数了,让它注意找到相应的定义部分。第二个问题:你的问题中的代码有点错误,函数声明就是整个函数头 加上一个分号,函数调用只是函数名和实参以及分号组成,你的main()函数中int sum (int i) {...}这不叫函数调用,这叫函数定义,而且是嵌套定义,这是不允许的。C语言允许函数嵌套调用,但是不允许嵌套定义。这是破坏C语言结构化程序思想的。磨纳欢迎分享,转载请注明来源:内存溢出
评论列表(0条)