Jika tidak rusak, jangan memperbaikinya
Bos Anda kedengarannya benar mengatakan ini, namun, faktor yang lebih penting , adalah melindungi input, output, buffer overflows. Kurangnya itu selalu merupakan tautan terlemah dalam rantai dari sudut pandang itu terlepas dari kompiler yang digunakan.
Namun, jika basis kode adalah kuno, dan pekerjaan telah dilakukan untuk mengurangi kelemahan K&R C yang digunakan, seperti kurangnya keamanan jenis, tidak amannya anggaran, dll, menimbang pertanyaan " Apakah meningkatkan kompiler ke C99 yang lebih modern / Standar C11 menghancurkan segalanya? "
Asalkan, ada jalur yang jelas untuk bermigrasi ke standar C yang lebih baru, yang dapat menyebabkan efek samping, mungkin yang terbaik adalah mencoba garpu basis kode lama, menilai dan memasukkan cek tipe tambahan, pemeriksaan kewarasan, dan menentukan apakah meningkatkan ke kompiler yang lebih baru memiliki efek pada dataset input / output.
Kemudian Anda dapat menunjukkannya kepada atasan Anda, " Ini basis kode yang diperbarui, dire-refoured, lebih sesuai dengan standar C99 / C11 yang diterima industri ... ".
Itu pertaruhan yang harus dipertimbangkan, dengan sangat hati-hati , penolakan terhadap perubahan mungkin terlihat di sana di lingkungan itu dan mungkin menolak untuk menyentuh barang-barang baru.
EDIT
Hanya duduk santai selama beberapa menit, menyadari ini banyak, kode yang dihasilkan K&R dapat berjalan pada platform 16bit, kemungkinannya, peningkatan ke kompiler yang lebih modern benar-benar dapat memecahkan basis kode, saya berpikir dalam hal arsitektur, kode 32 bit akan dihasilkan , ini bisa memiliki efek samping yang lucu pada struktur yang digunakan untuk dataset input / output, yang merupakan faktor besar lainnya untuk dipertimbangkan dengan cermat.
Juga, karena OP telah menyebutkan menggunakan Visual Studio 2008 untuk membangun basis kode, menggunakan gcc dapat mendorong membawa ke lingkungan baik MinGW atau Cygwin, yang dapat memiliki dampak perubahan pada lingkungan, kecuali, targetnya adalah untuk Linux, maka itu akan menjadi layak dicoba, mungkin harus menyertakan sakelar tambahan ke kompiler untuk meminimalkan kebisingan pada basis kode K&R yang lama, hal penting lainnya adalah melakukan banyak pengujian untuk memastikan tidak ada fungsi yang rusak, dapat berubah menjadi latihan yang menyakitkan.