将变量直接传递给 C 中的函数?

Pass a variable directly into a function in C?

举个例子,假设我有一个函数 double calculate(double input);,它接受 input 并向其添加 5.0,然后 returns 值。

说我想接受 用户输入 。好的,所以创建一个与 scanf 一起使用的变量,将其命名为 double temp。然后 scanf("%lf", &temp); 最后我们使用函数 calculate(temp).

有什么方法可以将输入直接传递给函数 calculate而无需在中间设置变量?

使用 scanf() 是不可能的,因为此函数旨在 解析 您选择的格式的输入,因此它可能必须分配多个输入值一通电话。请注意,它无论如何都不会更改编译后的代码,因为无论您是否创建变量,真实机器都有将值存储在某处用于将其传递给函数。

如果您关心 C 代码的形状,您当然可以提供自己的输入函数,执行 return 输入,例如

double getDoubleInput(void)
{
    double in;

    /* add sanity checks and whatever, following is just a stub ... */
    scanf("%lf", &in);
    return in;
}

然后改用这个。一个好的编译器会在适当的时候内联它,所以生成的代码应该保持大致相同。