0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

行末にあると警戒したくなる文字

Posted at
foo()関数がなくてもコンパイル可能
int main()
{
  // foo表
  foo();
  return 0;
}

sample.png

flycheck は foo の未定義を検知していますが、clang++ でのコンパイル && 実行

clang++ -W a.cpp && ./a.out

は "Compilation:exit [0]" で正常終了しています。

これは、コンパイル オプション "-Wcomment" を付けると、文字「表」は改行を無視するコード

$ clang++ -Wcomment a.cpp
a.cpp:3:10: warning: multi-line // comment [-Wcomment]
  // foo<95>\
            ^
1 warning generated.
この2行はコメント
  // foo表
  foo();

として扱われることが分かります。同様の文字は

S-JISではエスケープ文字 "\" 扱いになる場合がある
 ― ソ 十 表 能 申 貼 噂 浬 欺 圭 構 蚕 曾 箪 暴 予 禄 兔
 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭 Ы

です。昔(主に前世紀)、「ソ」にはだいぶやられました。

ナントカの法則ではないけど、遭遇する可能性がゼロでないものは何故か出会してしまうので(運がいいのか悪いのか…)、無用なトラブルを避けるため行末に "." を付けるようにしています。

// コメント.
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?