質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

c++ コメント複数行で行う /* */ がエラーで出来ない場合とできる場合の規則が知りたい。

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 315

syoshinsya_

score 242

提示コードの最上部と最下部のコメントの /* と */で囲っているはずなのに構文エラーになる原因が知りたいです。 
その場で /* */ して間に改行したり文章を入れて改行しても構文エラーにならないのですが複数行コメント/**/の規則について知りたいです。

/*

/*引数 直線(点、ベクトル)、直線(点、ベクトル)*/
/*戻り値 2直線同士の 最短距離 自作*/
/*戻り値 最短距離の垂線の足、係数 t1 t2*/

/*2直線の最短距離を求める*/
//float calcLineLineDist(const Line& l1, const Line& l2, Point& p1, Point& p2, float& t1, float& t2) {
float LineLine_range(const vLine &l1, const vLine &l2, vPoint& p1,vPoint& p2,float &t1,float &t2)
{
    if(Vector::isParallel(l1.v,l2.v) == true)
    {
        printf("平行です。よって点と直線の最短距離問題に再帰\n");

        float f = Point_Line(l1.p,l2,p2,t2);
        p1 = l1.p;
        t1 = 0.0f;

        return f;
    }

    // 2直線はねじれ関係
    float DV1V2 = Vector::dot(l1.v,l2.v);//l1.v.dot(l2.v);
    float DV1V1 = l1.v.LengthSq();
    float DV2V2 = l2.v.LengthSq();
    Vector P21P11 = l1.p - l2.p;
    //t1 = (DV1V2 * l2.v.dot(P21P11) - DV2V2 * l1.v.dot(P21P11)) / (DV1V1 * DV2V2 - DV1V2 * DV1V2);
    t1 = (DV1V2 * Vector::dot(l2.v,P21P11) - DV2V2 * Vector::dot(l1.v,P21P11)) / (DV1V1 * DV2V2 - DV1V2 * DV1V2);

    //printf("引用t1: %.2f\n", t1);
    p1 = l1.getPoint(t1);
//    p1 = l1.getPoint(t1);

    //t2 = l2.v.dot(p1 - l2.p) / DV2V2;

    t2 = Vector::dot(l2.v,p1 - l2.p) / DV2V2;

    p2 = l2.getPoint(t2);
//    printf("引用t2: %.2f\n", t2);

    return (p2 - p1).Length();
}


/*

aaaaaaaaaaaa


*/

*/
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+4

#if 0#endif を使えば、/*コメント*/ を含む複数の行を無効にできます。

#if 0

/* コメント */

/* 別のコメント */

#endif


追記
#if 0 が "if 0 になっていたので修正しました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+2

/* */ の中に、 /* を入れてはいけません。
昔は、OKだった時(ただし、Cの頃)もありますが、最初の*/ でコメントが終わります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/05 18:17

    visual studio では上の複製とか新規とかブックマークとかのアイコンが並んでるバーの右側のボタンで選択している行を一気にコメントアウトできます。

    キャンセル

  • 2020/07/05 18:19

    コンパイルエラーを発見したりするためにコードの半分をコメントアウトしたい、といった需要があるので普段はC++スタイルコメント(//)で書き、デバッグ時にCスタイルコメント(/* */)を使うのがいいのではないかと思いました。またはデバッグ時にソースコードのファイルをコピーしてから編集したり、バージョン管理システムを併用するのでもいいと思いますが…。

    キャンセル

  • 2020/07/05 18:19

    Visual Studio優秀だなあ

    キャンセル

+1

複数行コメントはネストできないみたいです。例えば、

/* ok */

/**
 * ok
 */

/* /* ng */ */

/*

/* ng */

*/

といった感じです。

[参考]
コメント - cppreference.com

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

なるほど。ではそこは工夫してくださいってことでいいのでしょうか? 

まとめてコメントにしたいという事ですかね?

普通は、プリプロセッサー文で読み飛ばすようにするかと思います。

#ifdef XXXXXX

~~~~

#endif


ただし、内部に#ifdef等がある場合は#endifの対応が取れている必要があります。
つまり、何でも囲めると言うことではないですが、対応の取れていないものを囲みたくなることは無いはずです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/05 18:30

    かぶった上に、#if 0 の方がわかりやすいですね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • C++に関する質問
  • c++ コメント複数行で行う /* */ がエラーで出来ない場合とできる場合の規則が知りたい。