У меня есть программа на 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?