gpt4 book ai didi

c - 副作用:strcmp() 是纯函数吗

转载 作者:行者123 更新时间:2023-12-01 19:35:56 27 4
gpt4 key购买 nike

我正在学习副作用纯函数。我知道纯函数没有副作用,对于相同的参数,它们的返回值是相同的。我想知道 C 函数 strcmp() 是否是纯函数。我相信它是纯粹的,因为给定相同的两个字符串作为参数,结果将始终相同。此外,strcmp() 不修改任何变量或调用任何函数,因此它没有任何副作用。

但是我不确定我的推理是否正确。

最佳答案

strcmp() 是一个纯函数,因为结果仅取决于参数,此外,它不会修改全局状态。

当然,strcmp() 的不当使用可能会引发未定义的行为,但这与它是纯的还是不纯的无关。

编辑:

当引用的全局内存也相同时,纯函数只会产生相同的结果。 不需要的函数称为常量函数

GCC documentation provides strlen() as an example of a pure function. Indeed, this function takes a pointer as a parameter, and accesses it to find its length. This function reads global memory (the memory pointed to by parameters is not considered a parameter), but does not change it, and the value returned derives from the global memory accessed.

关于c - 副作用:strcmp() 是纯函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57215974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com