Esistono vecchie funzioni come index
, rindex
che sono state sostituite da strchr
e strrchr
.Come compilare il codice C su Linux/GCC senza che siano disponibili funzioni deprecate?
C'è un modo per configurare il compilatore o definisce così queste funzioni non sono disponibili?
Può causare confusione quando avvertimenti:
- accidentalmente utilizzando
index
nome al di fuori del campo di applicazione per esempio - o peggio, non mettere in guardia e utilizzare la funzione in un modo che non è destinato. - Le versioni GCC precedenti (4.x) avvisano quando si utilizza
-Wshadow
se si dispone di una variabile denominataindex
.
See:
- http://www.gnu.org/software/libc/manual/html_node/Search-Functions.html#index-index
- http://pubs.opengroup.org/onlinepubs/009695399/functions/index.html
Note:
- come @ Antti-Haapala dice, il mondiale il simbolo
index
non deve essere ridefinito in quanto le librerie potrebbero usarlo.
Questa domanda riguarda il caso comune quando una variabile locale è chiamataindex
. - Al momento della scrittura, glibc non contrassegna queste funzioni con l'attributo
deprecated
, quindi gli avvisi relativi all'utilizzo di funzioni deprecate non hanno alcun effetto.
ho mai osato porre questa domanda - abitualmente io uso un editor di testo per la ricerca di sostituire le variabili chiamato accidentalmente con nomi 'rischiosi' come 'index' ecc. con qualcosa' innocuo ', come 'indx' – user3078414