gpt4 book ai didi

c - 如何在C中实现访问说明符?

转载 作者:行者123 更新时间:2023-12-04 23:41:06 27 4
gpt4 key购买 nike

我试图实现访问说明符(不确定是否称为访问说明符)

目的是使函数(func2)仅在一个位置(在func1内部)可调用。

int func1 ()
{
// Make func2 callable only here`
#define FUNC2_CALLABLE
func2();
#undef FUNC2_CALLABLE
}

#ifdef FUNC2_CALLABLE
int func2 ()
{
return 1;
}
#endif // FUNC2_CALLABLE


func2应该只能从func1调用,而不能从代码的任何其他位置调用。

以上代码是否达到目的?任何其他建议

<编辑1>

这样做怎么样

 int func2() 
{
#ifdef FUNC2_CALLABLE
return 1;
#endif
}


这样行吗?

最佳答案

这将为您提供一个找不到func2的链接器错误(如果使用func2,则不会定义func2)。

我认为您可能正在寻找静态的。

static int fake(int x) { return x * 2; }

int doSomething(int x) { int tmp = fake(x); doOtherThings(); }


伪造在编译单元(基本上是文件)之外不存在。

至于只允许从另一个函数调用一个函数,这没有多大意义。如果这是您的最终目标,则只需内联代码。

关于c - 如何在C中实现访问说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961636/

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