Якщо це не зламалося, не виправляйте
Ваш начальник звучить правильно, кажучи це, однак, більш важливим фактором є захист входів, виходів, переповнення буфера. Недолік цих незмінно є найслабшим ланкою ланцюга з цієї точки зору, незалежно від використовуваного компілятора.
Однак якщо база коду є давньою, і було розпочато роботу з усунення слабких місць використовуваних K&R C, таких як відсутність безпеки типу, незахищені фетти тощо, зважити на питання " Чи можна модернізувати компілятор до сучасного C99 / C11 стандарти все порушують? "
За умови, що існує чіткий шлях до переходу на новіші стандарти С, які можуть викликати побічні ефекти, може бути найкращим чином спробувати вилку старої бази коду, оцінити її та встановити додаткові перевірки типу, перевірки правильності та визначити, чи буде оновлено до новіший компілятор має будь-який вплив на набори вводу / виводу даних.
Тоді ви можете показати це своєму начальнику: " Ось оновлена база коду, що переробляється, більше відповідає стандартам C99 / C11, прийнятим у галузі ... ".
Це гра, яку потрібно було б зважити, дуже обережно , стійкість до змін може проявитись у цьому середовищі і може відмовитися торкатися новіших речей.
EDIT
Просто просидів кілька хвилин, зрозумів це багато, код, сформований K&R, може працювати на 16-бітній платформі, швидше за все, перехід на більш сучасний компілятор може насправді зламати базу коду, я думаю, що з точки зору архітектури, буде створено 32-бітовий код , це може мати смішні побічні ефекти на структури, що використовуються для набору даних введення / виводу, що є ще одним величезним фактором для ретельного зважування.
Крім того, оскільки ОП згадувало використання Visual Studio 2008 для побудови бази даних, використання gcc могло викликати введення в середовище або MinGW, або Cygwin, що може вплинути на навколишнє середовище, якщо, якщо ціль не для Linux, то це було б Варто зняти, можливо, доведеться включити додаткові перемикачі до компілятора, щоб мінімізувати шум на старій базі коду K&R, інша важлива річ - провести багато тестування, щоб гарантувати, що функціональність не порушена, може виявитися болючою вправою.