[英]What is a program that doesn't return anything in C programming?
什么程序在 C 编程中不返回任何内容? 有人可以向我解释一下吗? 我是初学者和学习基础知识。 请简要说明 void function 做什么。 我将不胜感激,我现在真的很困惑。
每个 C function 指定其返回类型。 将返回类型指定为void
是 C 指定 function 不返回值的方式(并且可能只是因为它的副作用而被调用)。
其他一些语言(例如 Pascal)通过调用返回值的子例程“函数”和不返回值的子例程“过程”来区分。
在托管实现下(基本上是 C 实现不针对嵌入式系统), main
的 function 是程序的入口点。 该标准要求main
的返回类型为int
,但允许实现指定其他类型。 任何使用其他类型的程序都是不可移植的。
通常,将main
定义为返回int
,将main
返回的结果提供给调用环境以传达一些信息,例如程序是成功还是失败。 作为仅适用于main
function 的特殊情况,未显式返回值等同于返回0
,表示成功终止。
一些实现将允许您定义main
的返回类型为void
,但这样做会使您的程序不可移植,并且没有充分的理由这样做。 就个人而言,我使用void main()
作为 C 书籍和教程的过滤器。 任何建议void main()
而不讨论实现定义的行为或独立实现的作者都不知道 C 足以教授它。
void function 不返回任何值。 同样,您不能使用 void function 调用来初始化变量。
void SayHello(void) {
puts("Hello");
}
所以如果你试试这个,
int x = SayHello();
它会抛出一个错误。 因为 function 调用不会评估任何内容。 void 函数用于执行没有 output 值的任务。
另一方面,取一个带有返回值的 function:
int Sum(int x, int y) {
return x+y;
}
对该 function 的调用是一个表达式,其计算结果为从 function 返回的值。 例如, Sum(10, 1)
是一个计算结果为 11 的表达式,该值是从 function 返回的值。
一个 void function 是一个不返回任何东西的 function。 但你仍然可以打印或修改
例如:
int sum(x, y)
{
return x+y;
}
然后,您可以将返回的值分配给变量,例如:
int answer = sum(3,2);
例如,在 void function 中,您可以打印东西
void printnumber(int x)
{
printf("%d", x);
}
这将打印出 x 但不会返回值您不能执行以下操作:
int answer = printnumber(7);
这没有任何意义!
一些函数返回值,一些函数产生输出,还有一些函数访问 memory 并进行更改。
C 编程语言允许我们决定 function 返回什么值(如果有)。 例如:
C 库 function size_t strlen(const char *string)
(在<string.h>
中找到)返回给定字符串中的字符数。
C 库 function void* malloc(size_t size)
(在<stdlib.h>
中找到)返回一个void*
,它指向一个有效的 ZCD69B4957F06CD82917BF3D61980 位置的有效size
位置。
C 库 function int fclose(FILE *filePointer)
(在<stdio.h>
中找到)如果filePointer
指向的文件成功关闭则返回0
,如果发生错误则返回另一个值。
C 库 function void free(void *pointer)
(在<stdlib.h>
中找到)释放 memory pointer
的所有内容并且不返回任何内容
当您编写 function 时,您应该确定让您的 function 返回一些有用的东西是否最有意义,这可能是一个有用的数据或一切顺利的通知,或者它应该什么都不返回。 这取决于你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.