gcc 3.3以降の文字列の扱い

改行を含んだ文字列の扱いが変わったみたい。

gcc-3.2.xでは

printf("test
this is a
TEST\n");

で問題なかったが、gcc-3.3とかgcc-3.4では

printf("test"
this is a
TEST\n");

に変換されて(最初の行に余計な"がついてしまうので文の意味を成さなくなる)しまう。余計なことを! と私は思うけども、Cの標準がそうなのかなぁ。よくわかんないけど、けっこう迷惑。

printf("test\n"
"this is a\n"
"TEST\n");

と書けと?

(追記) 2004-04-15 23:42

gccというよりも、cppの段階で変換されてしまうのだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です