c - C中的副作用是什么?
问题描述
维基百科说:
在计算机科学中,如果一个操作、函数或表达式在其本地环境之外修改了一些状态变量值,则称它具有副作用,也就是说,除了返回一个值(主效应)之外,它还具有可观察到的效果。操作的调用者。
但是我们如何才能访问其本地环境之外的变量,任何人都可以将这种情况,副作用,主效应和序列点解释清楚吗?
解决方案
函数是(应该是)一个黑盒子,其中返回值或通过引用传递的变量的值应该是唯一可能根据输入参数而改变的东西。
该函数在这些情况之外产生的任何其他可观察到的变化都是副作用。最著名的例子可能是这个printf()
函数,除了返回写入字符的数量之外,它还改变标准输出的内容,这意味着改变一些与管道、文件或屏幕相关的内存缓冲区,例如,和不属于函数的本地环境。
推荐阅读
- javascript - 即使在使用 https 之后,也可以在标题表单数据中看到用户凭据
- linux - 如何在 linux 的文件名末尾创建带有 & 符号的文件?
- powershell - -notmatch 运算符在 powershell 中没有给出想要的结果
- uwp - 无法从 package.manifest > Application > DisplayName in Code 获取 uwp 显示名称
- sql - 为不同时间段的每个相关记录计算 db 中的行数
- python - 如何更改 google.auth.transport.requests Python 库中的 _DEFAULT_TIMEOUT(120 秒)?
- php - Laravel Cron Job 未执行 Eloquent 查询
- c++ - 是否有一张表格列出了哪个 Visual Studio 版本与哪个版本的 clang 格式一起提供?
- r - R markdown 产生与 R Code 不同的输出
- java - 使用 jms 向发件人发送自定义确认消息:使用 spring 集成的入站通道适配器