gpt4 book ai didi

C语言 : Exclusive calls of a function

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:52 27 4
gpt4 key购买 nike

我想知道您是否可以以一种只有特定的其他方法 B 才能调用 A 的方式声明方法 A。

蜂鸣的原因是我想限制一种方法从 main 调用蜂鸣(因为在大学里有奇怪的测试算法)。如果 main 调用了这个方法(这是一个辅助方法),整个程序就会变成垃圾。

那么,我怎样才能“禁止”main(或任何其他方法)调用我的危险方法 B 呢?

最佳答案

ab 放入一个单独的编译单元(它自己的目标文件)。向该编译单元声明 a static,使 b 全局可见,并在特定的头文件中已知。

编译单元无法调用(甚至“看”) 的任何a,而b 是完全可见的您程序的其余部分,并且能够很好地调用 a

如果您想确保没有人能够更改它,请仅分发编译后的 .o 文件和适当的 header 。

公元前:

static int a(int i){
...
}

int b(int x){
return a(x + 100);
}

主.c:

#include "b.h"
int main (int argc, char *argv[]){
int c, d;

c = b(100); /* works */
d = a(100); /* will not compile */
}

关于C语言 : Exclusive calls of a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753532/

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