Ho un programma C che tenta di modificare una stringa letter cost. Come ora ho imparato che questo non è permesso.perché clang ++ si comporta in modo diverso da clang poiché il primo è un collegamento simbolico di quest'ultimo?
Quando compilo il codice con clang test.c
il compilatore non avvisa. Ma quando ho compilare con clang++ test.c
dà un avvertimento:
test.c: 6: 15: avvertimento: conversione da stringa letterale di 'char *' è deprecato [-Wdeprecated-scrivibili-strings] char * s = "Ciao mondo"; ^
Il problema è che si scopre clang++
è solo un collegamento simbolo di clang
:
ll `which clang++`
lrwxr-xr-x 1 root admin 5 Jan 1 12:34 /usr/bin/[email protected] -> clang
Quindi la mia domanda è come potrebbe clang++
si comporta in modo diverso da clang
dato che si tratta di un legame simbolo di clang
?
Vuoi dire che _bash_ sta guardando 'argv [0]' e alterando il comportamento? Quindi è difficile codificare in bash che 'clang ++' si comporta diversamente da 'clang'? – RockU
Scusa, non ho pensato abbastanza. È codificato in "clang". Grazie :) – RockU
Potrei ricevere una citazione su questa tecnica "non comune e scoraggiata"? Non intendendo bash, solo curioso. –