Skip to main content

ログ取得ツール (移転先予定地)

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の段階で変換されてしまうのだ。