C语言里的side effect是什么意思?

关注者
39
被浏览
35,894

6 个回答

数学函数就是一个映射关系,给出输入,就会得到输出,除此之外没有别的东西,这叫没有副作用,也就是没有side effect。只要不仅仅给出输出的函数,就是有side effect的函数。例如printf函数,它的返回值一般没有意义,使用它就是为了利用它的side effect,也即向标准输出打印字符串

副作用是一个有负面意义的说法,中立的说法就是状态

有副作用的语言也就是允许显式修改(数据)状态的语言。其实允许修改状态的系统更接近于我们对这个宇宙的理解