我想知道您是否可以以一种只有特定的其他方法 B 才能调用 A 的方式声明方法 A。
蜂鸣的原因是我想限制一种方法从 main 调用蜂鸣(因为在大学里有奇怪的测试算法)。如果 main 调用了这个方法(这是一个辅助方法),整个程序就会变成垃圾。
那么,我怎样才能“禁止”main(或任何其他方法)调用我的危险方法 B 呢?
将a 和b 放入一个单独的编译单元(它自己的目标文件)。向该编译单元声明 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 */
}
我是一名优秀的程序员,十分优秀!