改行コード

文字コードの次は、改行コードです。

改行のコードにはLF(改行、0x0A)、CR(復帰、0x0D)の2つの値が存在するが、
そのファイルを扱うOSによって、
改行を表すコードは異なる。

  • LF

UNIX系、LinuxとかMacOSXとか

  • LF+CR

Windowsとか

  • CR

MacOS9以前とか


で、これの何が重要かって、
たとえば、もし改行コードLF+CRのWindowsで作成したプログラムに

printf("hogehoge\n");

と書いたとする。
ここで、テキストを保存すると\nはLF+CRの値に変換されて保存される。
そのファイルをLinux上でコンパイルしようとする。
LinuxはLFなので、LF+CRのLFの部分だけを改行だと判断し、
CRは不要な文字と認識される。
つまりこれは、Linux上では
printf("hogehoge※※");
などと読まれるわけで、
これではコンパイルエラーとなってしまうというわけ。



簡単にまとめようと思ったのに、長くなったな。
まあ以上の関連で今日バイトではまってました。
なんか最後の方グダグダになったので、
また調べて修正します。