c - 具有相同参数的相同函数会产生不同的结果

标签 c function variables

这是我的代码的一部分:

double interf1 = interf(ppp, numberOfPoints);
printf("interf (%e,%e)\n", interf(ppp,numberOfPoints), interf1);

问题是,当我打印 interf1interf(ppp, numberOfPoints) 的值时,我得到不同的结果。

这有什么解释吗?

最佳答案

这可能是 side effect 的症状.

这是一个具有副作用的 interf 实现的简单示例:

int z;

double interf(int p, int n) {
    return z++;
}

每次调用,即使使用相同的值,也会返回不同的结果。

其他副作用示例包括从流(例如文件或网络接口(interface))读取,副作用是您移动文件上的位置,或消耗网络缓冲区中的数据。

副作用本身并不坏。您只需要了解它们,如果引入它们,请在函数名称中记录它们。明确它会修改某些状态。

关于c - 具有相同参数的相同函数会产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32398510/

相关文章:

c - 合并插入排序如何工作?

编译器没有为 'default' 开关中的替代名称给出错误

c - 将 fgets 与 realloc() 结合使用

r - 在不附加包的情况下评估包环境中的功能

php - Javascript 重定向 - 用 Php 控制它

c - 汇编语言和c语言——文件大小的比较

我可以通过同时索引 c 中的两个矩阵来将矩阵的值传递给另一个矩阵吗?

javascript - JS : Making a better function that returns conditional statement

javascript - 赋予 A 与 B 相同的值,但不使它们相互关联

java - 如何获取在 void 方法中实例化的对象?