は、私は(つまり、アクセス指定子と呼ばれているかどうかわからない)Cでアクセス指定子を実装するにはどうすればよいですか?
目的は(関数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からのみ呼び出し可能で、コード内の他の場所から呼び出すことはできません。
上記のコードが目的を果たしていますか?このよう
int func2()
{
#ifdef FUNC2_CALLABLE
return 1;
#endif
}
この作品はウィルそれをやっについての任意の代替提案をどのように
<編集1>
? < /編集1>
このようには機能しません。あなたができることは、それをエクスポートすることではなく、fun2()をfunc2()で静的宣言すると、リンカーには見えず、このコンパイルユニットの外で呼び出すこともできません。 – pizza
http://stackoverflow.com/questions/1401781/how-to-implement-a-private-restricted-function-in-c – Flot2011
これは1か所で呼び出し可能なだけで、他の人ができるようにしたくない場合それを呼び出す - なぜそれを機能させるのか?どうしてfunc1()にコードを直接記述しないのですか? –