初期化関数 (-functions-called-before-main
)
生成された main
により他の関数より先に呼び出す関数の指定
説明
このオプションは Code Prover 解析のみに影響します。
このオプションは、MATLAB® コードまたは Simulink® モデルから生成されたコードでは使用できません。
生成された main
により他の関数より先に呼び出す関数を指定します。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [Code Prover 検証] ノードを選択してから、このオプションの値を入力します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [実行時エラー] ノードを選択してから、このオプションの値を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。
コマンド ラインとオプション ファイル: オプション
-functions-called-before-main
を使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
モジュールまたはライブラリを検証している場合、main
関数が存在しないと、Code Prover によって生成されます。main
関数が存在する場合、解析では既存の main
が使用されます。
このオプションとオプション [呼び出す関数] (-main-generator-calls)
を同時に使用して、生成された main
が呼び出さなければならない関数を指定します。main
から直接または間接的に呼び出される場合を除いて、本ソフトウェアはその関数を解析しません。
設定
既定値なし
関数名を入力するか、一覧から選択します。
をクリックしてフィールドを追加し、関数名を入力します。
をクリックして、コード内の関数の一覧を表示します。その一覧から関数を選択します。
関数またはメソッドがオーバーロードされない場合は、関数名を指定します。それ以外の場合は、引数を使用して関数プロトタイプを指定します。たとえば次のコードでは、プロトタイプ func(int)
および func(double)
を指定しなければなりません。
int func(int x) { return(x * 2); } double func(double x) { return(x * 2); }
クラス メソッドである場合:生成された
main
は、クラス コンストラクターを呼び出した後、この関数を呼び出します。クラス メソッドでない場合:生成された
main
は、この関数を呼び出した後、クラス メソッドを呼び出します。
スコープ解決演算子を使用して特定の名前空間の関数を指定する場合は、myClass::init(int)
などの完全修飾名を入力します。関数にパラメーターがない場合、myClass::init()
のように空のかっこを使用します。
依存関係
オプション [モジュールまたはライブラリの検証] (-main-generator)
(Polyspace Code Prover) が選択されている場合にのみ、このオプションを使用できます。
コードに main
関数が含まれている場合、このオプションは無視されます。
ヒント
これらの関数は他の関数より先に呼び出されますが、任意の順序で呼び出すことができます。初期化関数を特定の順序で呼び出す場合は、main
関数を手作業で作成して呼び出します。
コマンド ライン情報
パラメーター: -functions-called-before-main |
値:
|
既定値なし |
例 1 (Code Prover): polyspace-code-prover -sources |
例 2 (Code Prover): polyspace-code-prover -sources |
例 1 (Code Prover Server): polyspace-code-prover-server -sources |
例 2 (Code Prover Server): polyspace-code-prover-server -sources |
参考
モジュールまたはライブラリの検証 (-main-generator)
| 初期化する変数 (-main-generator-writes-variables)
| 呼び出す関数 (-main-generator-calls)
| クラス (-class-analyzer)
| 指定クラス内で呼び出す関数 (-class-analyzer-calls)
トピック
- Polyspace 解析オプションの指定
- main 関数のない C アプリケーションの検証 (Polyspace Code Prover)
- C++ クラスの検証 (Polyspace Code Prover)