为什么我们不写int x = printf(“text”);因为printf()语句每次都返回一个整数值?

前端之家收集整理的这篇文章主要介绍了为什么我们不写int x = printf(“text”);因为printf()语句每次都返回一个整数值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于printf函数每次使用时都会返回一个整数值(屏幕上写入的字符数),因此每次调用printf时都不一定要将此值存储在int变量中吗?

编辑:

如果函数返回某个值,为什么C不需要在函数调用时存储该值?

解决方法

如果您认为您的C程序将被翻译成汇编语言(例如x86程序集),则读取函数的返回值只需读取存储在cpu的“eax”寄存器中的值.

历史上编写的C编程语言是一种易于在非常有限的(对于今天的标准)PDP-11计算机上进行解析和编译的语言.

早期的C编译器(好吧,其中一些)接受声明的函数没有返回类型而没有返回,如下所示:

myFunc(int *x)
{
    *x = *x + *x;
}

这是早期C编译器将其解释为的函数

int myFunc(int *x)
{
    *x = *x + *x;
    return 0;
}

因此,您的问题的答案可能是“因为遗留代码”.

但是,应该或必须检查返回值的情况.

MISRA C指南第16.10条规定:
“如果函数返回错误信息,则应测试该错误信息”.

因此,如果您需要确保printf()已打印某些内容,如果您使用返回值作为“错误信息”,则必须遵循MISRA准则,您必须检查该值.

原文链接:https://www.f2er.com/html/242443.html

猜你在找的HTML相关文章