変数のプライベート化と関数のプライベート化、およびプライベート化のメリット

1675 ワード

変数のプライベート化
なぜ変数を私有化するのですか?
構造の良いプログラムでは、独立したモジュール間でパラメータをモジュール間で伝達する関数呼び出しによってデータを交換する.多くの場合、特にプログラム設計の習慣を身につけ始めたばかりの場合、各グローバル変数が1つ以上のモジュールに参照されないことを確認したほうがいい.2つのモジュールが同じグローバル変数を参照する可能性を回避するために、変数をプライベート化できます.
変数はどのように私有化されますか?
変数のプライベート化は、宣言前にキーワードstaticを使用します.たとえば、次のようにします.
static int cpos;

この宣言はcposをグローバル整数変数として定義し、定義されたモジュールのどこにでも表示されますが、他のモジュールでは無効なので、現在のモジュールはプライベートです.
説明:
ほとんどの場合、staticはprivate(C++に類似)の同義語であり、その用途をより適切に記述できると考えられるのが望ましい.キーワードstaticで変数を宣言すると、それらを適用する関数にとってプライベートになります.
関数のプライベート化
なぜ関数をプライベート化するのですか?
関数でもプロシージャでも、それ自体が機能を実行するために呼び出されるべきであるのに、なぜ私有化されるのかと聞かれるかもしれません.ここではもう一つの概念:インタフェースを明らかにします.
インタフェースの説明は以下の資料を参照してください.
インタフェース設計の一般原則
C言語のカスタマイズ方法hヘッダファイル?
インタフェースの重要な役割の1つは、ユーザーが使用するインタフェースを開き、インタフェース内部の複雑な実装を隠すことです.したがって、インタフェースを定義するときに、お客様が使用するインタフェースからエクスポートされる関数はプライベートではありません.インタフェースのポイントは、これらの関数を他のモジュールで呼び出すことです.多くの場合、インタフェースには、インタフェース機能を実現するために顧客に開放する必要がない関数もあります.ただし、お客様がこれらの関数を呼び出したり、お客様が関数をカスタマイズしたりすると、その関数と重複する可能性があります.この場合、ある関数をモジュールに限定して使用する必要があります.これにより、お客様がこれらの関数を呼び出すことができなくなり、インタフェースとユーザー間の抽象的な境界がより安定して堅固になります.
 
関数はどのように私有化されますか?
関数のプライベート化は、プロトタイプと実装の前にキーワードstaticを使用します.たとえば、次のようにします.
static string buffer;

 
説明:
宣言関数はstaticであり、いくつかのプログラマーが開発に参加する大規模なプログラム環境においてもメリットがあります.関数またはグローバル変数がstaticを宣言していない場合、プログラム全体を構成するモジュールのセット内の他のモジュールではこれらの名前が使用できません.そうすると、プログラマーはより多くのコミュニケーションを必要とし、開発コストを高める可能性があります.したがってstaticキーワードは,彼らが使用する名前が自分のモジュールの私有化を保証することができる.
以下のルールはモジュール化開発にとって素晴らしい指導である.
静的宣言の原則:main関数とインタフェースが明確にエクスポートした関数を除いて、すべての関数をstaticとして宣言する必要があります.
 
2018.05.09 12:35