C and C++


LANG.STRUCT.CONDASSIG : 条件式中の代入

要旨

条件文が代入を含んでいます。

プロパティ

クラス名 Assignment in Conditional
日本語クラス名 条件式中の代入
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.CONDASSIG
カテゴリー
CWE CWE:481 Assigning instead of Comparing
TS17961 TS17961:5.4-boolasgn 5.4. No assignment in conditional expressions
CERT-C CERT-C:EXP45-C Do not perform assignments in selection statements
JSF++ JSF++:160 An assignment expression shall be used only as the expression in an expression statement.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Assignment in Conditional"

void lang_struct_condassig(void)
{    
    int c;
    int tried[100];
    memset(tried, 0, 100 *sizeof(int));
    while (c = rand()%100 != 56) /* 'Assignment in Conditional' warning issued here */
        tried[c] = 1;
        /* ... */
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。