У меня есть программа на C, которая пытается изменить строковый литерал const. Как теперь я узнал, что это запрещено.
Когда я компилирую код с 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/[email protected] -> clang
Итак, мой вопрос: как clang++
ведет себя иначе, чем clang
, учитывая, что это ссылка на символ clang
?