procedure 是过程关键字, function 是函数关键字 ,c++ 和c 都是省去了这种关键字,所以没有对应。。。。
procedure 可以认为是无返回值的函数。。。。
procedure proc(a:int) ; 就等于 c 中的 void proc(int a); procedure 和void不能等价,
procedue 是个类型说明的关键字,C语言和C++没有这种东西,所以不能完全等价
你可以写 void proc(void) 却不能写 procedure proc(procedure)
pascal中有类型说明符 号, var 变量声明(此后的代码全是变量声明),等价basic中的
dim ,c,c++中没有。。。。 procedure 过程说明符 等价 basic 中的 Sub ,c中同样没有。。。function 函数说明 basic中也是 funciton,c 和c++没有。。。。。。。
c和C++ 对过程和函数不做区分, 只要返回值是 void函数就是过程,void是返回值类型,不是过程声明关键字,c语言,c++出现较晚,语法不是很严格,很多感觉不必要的关键词都没有定义了。。。
bisic pascal 返回值都写在后边 如 function a(i:char):char,c,和c++是前面 ,
char a(char i) ,可以看出在对应关系上 function 是多余的一个关键字,procedure 也一样 。。。。
其实函数和过程还是有区别的,主要区别是过程退出时,什么都不用管,而函数必须要去复原堆栈,因为要取返回值,调用者需要调用前保存返回的堆栈位置,过程则不用保存,函数调用后还要多一个步奏,取返回值,取完后复原堆栈,在编译上有区别,如果你有返回值却从来不用,倒不如写成 procedure 运行更快。。。。