哪位高人能详细解释一下什么是C/C++的side effects?

zhangyhbais 2003-03-20 02:23:30
最近在看书,多次提到了side effects,不是很明白。请哪位能详细解释一下什么是side effects?谢谢.
...全文
470 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebird97073 2003-03-20
  • 打赏
  • 举报
回复
反过来看 Functional 的程序设计方法,它把一个子程序的计算效果累积在一个函数里面,然后把这个函数返回给调用者,可以做到不用设置全局变量。这样使得调用者在继续往下计算的时候,它的计算只和传递回来的这个"函数"有关,而不会受到代码中"遥远"的其它地方的变量值的影响。影响 Functional 程序中代码执行效果的因素,一是程序代码本身,二是输入数据。而且这两个因素都是局部的,在程序员的注意力范围之内。当从代码段中不同的地方,用同样的输入数据调用同一段代码的时候,得到的输出是一模一样的。这就是所谓的"Referential Transparency",它的主要好处是,让代码调试变得相对简单了。

如果一门程序设计语言,只允许上面说的 Functional 的调用子程序的方法,也就是说,它不允许你设置各种各样的全局或者是局部的变量,也就是说,如果它不允许边界效应(side effects),那么这门编程语言就叫做是 Pure 的、纯粹的 Functional 编程语言

70,032

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧