首页 > 解决方案 > C中的副作用是什么?

问题描述

维基百科说:

在计算机科学中,如果一个操作、函数或表达式在其本地环境之外修改了一些状态变量值,则称它具有副作用,也就是说,除了返回一个值(主效应)之外,它还具有可观察到的效果。操作的调用者。

但是我们如何才能访问其本地环境之外的变量,任何人都可以将这种情况,副作用,主效应和序列点解释清楚吗?

标签: cscopeside-effectssequence-points

解决方案


函数是(应该是)一个黑盒子,其中返回值或通过引用传递的变量的值应该是唯一可能根据输入参数而改变的东西。

该函数在这些情况之外产生的任何其他可观察到的变化都是副作用。最著名的例子可能是这个printf()函数,除了返回写入字符的数量之外,它还改变标准输出的内容,这意味着改变一些与管道、文件或屏幕相关的内存缓冲区,例如,和不属于函数的本地环境。


推荐阅读