У меня есть программа на C, которая пытается модифицировать константный строковый литерал. Как сейчас узнал, что это не разрешено.
Когда я компилирую код с помощью clang test.c
, компилятор не выдает никаких предупреждений.Но когда я скомпилирую его с помощью clang++ test.c
, он выдает предупреждение:
test.c :6 :15 :предупреждение :преобразование из строкового литерала в 'char *' устарело [-Wdeprecated -записываемые -строки] char *s = "привет мир"; ^
Проблема в том, что clang++
— это просто символьная ссылка clang
:
ll `which clang++`
lrwxr-xr-x 1 root admin 5 Jan 1 12:34 /usr/bin/clang++@ -> clang
. Итак, мой вопрос: как clang++
может вести себя иначе, чем clang
, учитывая, что это символьная ссылка clang
?