Se non si è rotto, non aggiustarlo
Il tuo capo suona bene nel dire questo, tuttavia, il fattore più importante è la protezione di input, output, buffer overflow. La mancanza di questi è invariabilmente l'anello più debole della catena da quel punto di vista, indipendentemente dal compilatore utilizzato.
Tuttavia, se la base di codice è antica e sono stati messi in atto lavori per mitigare i punti deboli del K&R C utilizzato, come la mancanza di sicurezza del tipo, budget insicuri, ecc., Soppeserebbe la domanda " Aggiornerebbe il compilatore al più moderno C99 / Gli standard C11 infrangono tutto? "
A condizione che esista un percorso chiaro per migrare ai più recenti standard C, che potrebbero indurre effetti collaterali, potrebbe essere meglio tentare un fork del vecchio codice di base, valutarlo e inserire ulteriori controlli di tipo, controlli di integrità e determinare se l'aggiornamento a il compilatore più recente ha alcun effetto sui set di dati di input / output.
Quindi puoi mostrarlo al tuo capo, " Ecco la base di codice aggiornata, refactored, più in linea con gli standard C99 / C11 accettati dal settore ... ".
Questa è la scommessa che dovrebbe essere ponderata, con molta attenzione , la resistenza al cambiamento potrebbe mostrarsi lì in quell'ambiente e potrebbe rifiutare di toccare le cose più nuove.
MODIFICARE
Sono rimasto indietro per qualche minuto, capito così tanto, il codice generato da K&R potrebbe essere in esecuzione su una piattaforma a 16 bit, è probabile che l'aggiornamento a un compilatore più moderno potrebbe effettivamente rompere la base di codice, sto pensando in termini di architettura, il codice a 32 bit verrebbe generato , questo potrebbe avere effetti collaterali divertenti sulle strutture utilizzate per i set di dati di input / output, che è un altro enorme fattore da valutare attentamente.
Inoltre, dal momento che OP ha menzionato l'uso di Visual Studio 2008 per costruire la base di codice, l'uso di gcc potrebbe indurre a portare nell'ambiente MinGW o Cygwin, che potrebbe avere un impatto sull'ambiente, a meno che la destinazione sia per Linux, quindi sarebbe vale la pena provare, potrebbe essere necessario includere ulteriori switch per il compilatore per ridurre al minimo il rumore sulla vecchia base di codice K&R, l'altra cosa importante è eseguire molti test per assicurarsi che nessuna funzionalità venga interrotta, potrebbe rivelarsi un esercizio doloroso.