/*
    例1）ソースコード、コメントを追加した場合
*/
int foo1(int param1, int param2) {
    int ret;
    /* ＠ コメントを追加 */
    ret = 0;    // ＠ 追加した行
    ret = param1 + param2;
    return ret;
}

/*
    例2） ソースコード、コメントを削除した場合
*/
int foo2(int param1, int param2) {
    int ret;
    ret = param1 + param2;
    return ret;
}

/*
    例3) ソースコード、コメントを変更した場合
*/
int foo3(int param1, int param2) {
    int ret;
    /* ＠ この行のコメントが変更された */
    ret = 20;    // ＠ 変更される行
    ret = ret + (param1 + param2) / 2;
    return ret;
}

/*
    例4） ソースコード、コメントを #if で削除した場合
*/
int foo4(int param1, int param2) {
    int ret;
#if 0   // #if で削除する
    /* ＠ 無効化されるコメント行 */
    ret = 0;    // ＠ 無効化される行
#endif  // ここまで削除
    ret = param1 + param2;
    return ret;
}

/*
    例5） ソースコードをコメントで無効にした場合
*/
int foo5(int param1, int param2) {
    int ret;
    /*    ＠ コメント化した行は、COM側の新規行扱いになります
    ret = 0;    // ＠ 無効化される行
    */
    ret = param1 + param2;
    return ret;
}

/*
    例6） 元のコードを #if などで残して修正した場合
*/
int foo6(int param1, int param2) {
    int ret;
#if 0    // #if を使ってもとのソースを無効化する
    ret = param1 + param2;    // ＠ 修正される行
#else
    ret = param1;
    ret += param2;
#endif
    return ret;
}

/*
    例7） 複数行をまとめて修正した中に、変更されない行が
          混じっていた場合
*/
int foo7(int param1, int param2) {
    int ret;
    int count;
#if 0    // #if を使ってもとのソースを無効化する
    for(count = 0; count < param1; count ++) {  // ＠ 変更する
        ret++;                                  // ＠ 変更しない
    }                                           // ＠ 変更しない
    ret += param2;                              // ＠ 変更する
#else
    for(count = param1; count > 0; count --) {  // ＠ 変更した
        ret++;                                  // ＠ 変更しない
    }                                           // ＠ 変更しない
    ret = ret + param2;                         // ＠ 変更した
#endif
    return ret;
}

/*
    例8) 有効行にあるコメントを修正した場合
*/
int foo8(int param1, int param2)
{
    int ret;
    ret = 0;    // ＠ コメントのみ修正のためLOCには影響なし
    ret = ret + (param1 + param2) / 2;
    return ret;
}

