const 文字列リテラルを変更しようとする C プログラムがあります。今、私はこれが許可されていないことを学びました。
コンパイラでコードをコンパイルするとclang test.c
、警告が表示されません。しかし、それをコンパイルするとclang++ test.c
、警告が表示されます。
test.c:6:15: 警告: 文字列リテラルから 'char *' への変換は非推奨です [-Wdeprecated-writable-strings] char *s = "hello world"; ^
clang++
問題は、それが次の単なるシンボル リンクであることが判明したことclang
です。
ll `which clang++`
lrwxr-xr-x 1 root admin 5 Jan 1 12:34 /usr/bin/clang++@ -> clang
だから私の質問は、それがのシンボルリンクであることを考えると、どのclang++
ように異なる動作をすることができるかということです?clang
clang