Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的程序和功能_C_Function_Procedures - Fatal编程技术网

C语言中的程序和功能

C语言中的程序和功能,c,function,procedures,C,Function,Procedures,据我所知,函数和过程是有区别的。我知道函数返回一个值,而过程只是一个接一个地执行命令。另一方面,今天我的教授说,我们也可以使用一个过程在C程序中返回一个值。我很确定这是不可能的。我也在网上查过,读到一个过程只执行一个命令,一个函数执行并返回一个值。我可能弄错了。如果有人能告诉我,如果我有正确的理解,这将是一个很大的帮助。谢谢大家! 在C中没有过程这样的概念 在我的帖子的评论中所写的内容是完全错误的,逻辑上是不一致的,因为首先,程序本身的概念应该被定义为可以讨论的。不同的语言对过程、参数传递和变量

据我所知,函数和过程是有区别的。我知道函数返回一个值,而过程只是一个接一个地执行命令。另一方面,今天我的教授说,我们也可以使用一个过程在C程序中返回一个值。我很确定这是不可能的。我也在网上查过,读到一个过程只执行一个命令,一个函数执行并返回一个值。我可能弄错了。如果有人能告诉我,如果我有正确的理解,这将是一个很大的帮助。谢谢大家!

在C中没有过程这样的概念

在我的帖子的评论中所写的内容是完全错误的,逻辑上是不一致的,因为首先,程序本身的概念应该被定义为可以讨论的。不同的语言对过程、参数传递和变量可见性有不同的定义

此外,你教授的这一陈述清楚地表明他的陈述是错误的。这是错误的,因为他首先要定义程序的概念。您可能有自己的程序概念,其中程序可能不会返回值,而教授可能有自己的程序概念

所以这句话毫无意义。

C没有任何程序


例如,这个问题可以用下面的方式来表述:C的结构是否类似于Pascal或Cobol中的过程。在这种情况下,您可以讨论一个类似的构造在C中应该是什么样子的,它是否应该有返回类型void,它的参数是否必须是指针,或者构造应该只处理全局变量而不是参数等等。

C没有过程,只有函数。在C语言中,最接近程序的是一个空函数。帕斯卡·奥托有程序和函数。
void foo(int x)
可能符合大多数程序定义。@William Pursell这是完全错误的。在C中没有程序。因此,您应该命名具有过程概念的语言,并根据它将void foo(intx)视为过程。例如,据我所知,在许多语言中,过程的定义是通过引用传递参数。C标准没有定义“过程”,这并不意味着语言中没有这样的定义。这只是意味着标准没有这样命名。它避免使用这种语言的原因是显而易见的:这样做会造成区别,这会使标准变得复杂,并且不会带来任何好处。@重复数据消除程序在逻辑上存在严重问题。“C标准未定义的事实”程序“意味着C没有程序,仅此而已。如果你要谈论程序,你必须用某种语言指出程序的定义,如果存在这种概念,那么讨论会有一定的意义。@Vlad:每当标准没有定义一个术语时,我们就不得不求助于技术英语,最后求助于同位语英语。如果我们不这样做,标准可能会更大一些数量级,甚至还不会开始描述C。术语“过程”显然是一个技术术语。