gpt4 book ai didi

c - 如何确保传递给函数的指针及其内容不能仅在 c 中的函数 block 内修改

转载 作者:行者123 更新时间:2023-12-04 10:37:55 25 4
gpt4 key购买 nike

我很纳闷,但在任何地方都找不到我的问题的答案。假设我有两个功能:

void function_B(int * data){
// I am able to modify its content
}

void function_A(int * data){
// I do not want to be able to modify the data nor its content here only pass the pointer to function B, so it can be changed there
function_B(data);
// Nor I want to be able to modify it here
}

我熟悉const关键字,但是如果我让函数A的数据和指针常量,函数B也不能改变它。我怎么能写出这样的代码?这甚至可以用 c 实现吗?

最佳答案

您可以做的一件事是分解出 function_A 中不允许修改数据的部分,如下所示:

void func_A_preB(const int *data)
{
// Do stuff with data but don't change it.
}

void func_A_postB(const int *data)
{
// Do stuff with data but don't change it.
}

void function_B(int *data)
{
// Can change data.
}

void function_A(int *data)
{
func_A_preB(data);
function_B(data);
func_A_postB(data);
}

关于c - 如何确保传递给函数的指针及其内容不能仅在 c 中的函数 block 内修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523317/

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