繁体   English   中英

什么程序在 C 编程中不返回任何内容?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM