gpt4 book ai didi

c++ - 如何信任声明为 const 的 C++ 函数的行为?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:26 24 4
gpt4 key购买 nike

这是一场 C++ 灾难,请查看此代码示例:

#include <iostream>

void func(const int* shouldnotChange)
{
int* canChange = (int*) shouldnotChange;
*canChange += 2;
return;
}


int main() {
int i = 5;
func(&i);
std::cout << i;
return 0;
}

输出是7!

那么,如果 C++ 函数能够更改假定的常量参数,我们如何才能确定它的行为呢!?

编辑:我不是在问如何确保我的代码按预期工作,而是想知道如何相信别人的功能(例如某些 dll 库中的某些功能)不会更改参数或具有某些行为...

最佳答案

根据您的编辑,您的问题是“我如何才能相信第 3 方代码不是愚蠢的?”

简短的回答是“你不能”。如果您无法访问源代码,或者没有时间检查它,您只能相信作者编写了合理的代码。在您的示例中,函数声明的作者明确声明代码不会使用 const 关键字更改指针的内容。你可以相信这个说法,也可以不相信。正如其他人所建议的那样,有一些方法可以对此进行测试,但是如果您需要测试大量代码,这将是非常耗费人力的。也许比阅读代码更重要。

如果你在一个团队中工作,并且你有一个团队成员在写这样的东西,那么你可以和他们谈谈,并解释为什么它不好。

关于c++ - 如何信任声明为 const 的 C++ 函数的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525803/

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