改行コード
文字コードの次は、改行コードです。
改行のコードにはLF(改行、0x0A)、CR(復帰、0x0D)の2つの値が存在するが、
そのファイルを扱うOSによって、
改行を表すコードは異なる。
- LF
- LF+CR
Windowsとか
- CR
MacOS9以前とか
で、これの何が重要かって、
たとえば、もし改行コードLF+CRのWindowsで作成したプログラムに
printf("hogehoge\n");
と書いたとする。
ここで、テキストを保存すると\nはLF+CRの値に変換されて保存される。
そのファイルをLinux上でコンパイルしようとする。
LinuxはLFなので、LF+CRのLFの部分だけを改行だと判断し、
CRは不要な文字と認識される。
つまりこれは、Linux上では
printf("hogehoge※※");
などと読まれるわけで、
これではコンパイルエラーとなってしまうというわけ。
簡単にまとめようと思ったのに、長くなったな。
まあ以上の関連で今日バイトではまってました。
なんか最後の方グダグダになったので、
また調べて修正します。