私はCで小さなAPIライブラリのようなモジュールを書いています。このモジュールをコンパイルして仲間の開発者に渡し、モジュールのヘッダーファイルでいくつかの必要な関数を公開して、モジュールを使用する開発者がどの関数を呼び出すかを認識できるようにします必要な機能について。ここで、1つだけ質問したいと思います。Cで必要な関数のみを公開できますか。
私はtest.cを持っています:
#include "test.h"
void A()
{
if( some condition is true )
B();
else
return;
}
void B()
{
//some code here
}
test.hでは、公開されている関数は1つだけです。
void A();
これで、B()は明らかにA()に設定された条件に依存します。そうでない場合、実行できず、test.hでA()のみが公開されるため、ユーザーはB()を直接呼び出すこともできることを知りません。今、私の恐れは、ユーザーが私のモジュールにA()をバイパスすることによって直接呼び出すことができるB()と呼ばれる関数があることを知った場合(または推測によって)、それが私の実装を危険にさらす可能性があることです。
この場合、パブリックメソッドとプライベートメソッドがあるため、C ++の方が優れていることはわかっています。また、B()でA()のフラグチェックを使用することで、B()が直接呼び出されないようにすることもできますが、知りたいです。ユーザーがヘッダーファイルに公開されていない私の関数(B()など)を呼び出せないような他のメソッドがある場合。