terminology - 函数和子程序有什么区别?

标签 terminology

函数和子例程有什么区别?有人告诉我函数和子程序之间的区别如下:

函数接受参数,在本地工作,不会改变任何值或使用其范围之外的任何值(高内聚)。它还返回一些值。子例程直接使用调用者或调用它的代码段的值,并且不返回值(低内聚性),即将某些代码分支到其他代码以便进行一些处理并返回。

这是真的吗?还是没有区别,只是用两个术语来表示一个?

最佳答案

我不同意。如果通过引用函数传递参数,则可以在函数范围之外修改该值。此外,函数不必返回值。考虑 C 中的 void some_func()。因此 OP 中的前提无效。

在我看来,函数子例程之间的区别是语义上的。也就是说有些语言使用不同的术语。

关于terminology - 函数和子程序有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048344/

相关文章:

c++ - 什么是半开范围和结束值

java - 接口(interface)定义的关系的术语

programming-languages - 什么是 'Language Performance' ?

unicode - Unicode 中的 ‘combining characters’ 和 ‘grapheme extenders’ 有什么区别?

algorithm - 描述数字范围时 "exclusive"和 "inclusive"是什么意思?

c++ - 变量的声明、定义和初始化有什么区别?

linq - EF 和 Linq 中的术语

java - 表达式也可以是文字?

multithreading - 并行编程==多线程编程?

css - 你如何阅读 CSS 中的 !important?