2017/10/21

[c/c++]URIスキームはラベル扱いになってしまう

お仕事でプログラムを作っている。
まだテスト段階なので仮実装が多く、忘れないように#warningなどで目印にしている。


だから、ビルドするとwarningはたくさん出てしまうのだが、エラーは出ないようにしている。
しかし、ソースを見直しているとこんな行が出てきた。

xxx {
   ...
   for (...) {
      ...
  }http://www.yahoo.co.jp/
}

参照したURLをコメントに書こうとしたのだろうが、間違えてソース中にそのまま貼り付けてしまったようなのだ。

にもかかわらず、エラーになっていない。
なんでだ?


単純なソースファイルにしてみる。

int main(void)
{
    http://www.yahoo.co.jp/
    printf("Hello, World!\n");
    return 0;
}

エラーにならないし、ちゃんと動く。


-Wallをつけてようやく分かったのだが、これは「http」というラベル扱いになったのだ。
こう書くと、printfは実行されずに終了する。

int main(void)
{
    goto http;
    printf("Hello, World!\n");

http://www.yahoo.co.jp/
    return 0;
}


何か使い道はないかと考えたが・・・ないな。
「なんか間違ってるよ」と思われるのがオチなので、やめておこう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。