Eğer kırılmazsa, tamir etme
Patronunuz bunu söylerken kulağa doğru geliyor, ancak daha önemli faktör, girdilerin, çıktıların, arabellek taşmalarının korunmasıdır. Bunların eksikliği, kullanılan derleyiciden bağımsız olarak, bu bakış açısından zincirdeki en zayıf halkadır.
Ancak, kod tabanı eskiyse ve kullanılan K&R C'nin tip güvenliği, güvensiz araçlar, vb. Gibi zayıflıklarını azaltmak için çalışmalar yapılmışsa , derleyiciyi daha modern C99'a yükseltmek / C11 standartları her şeyi kırıyor mu? "
Yan etkileri tetikleyebilecek daha yeni C standartlarına geçmek için açık bir yol olması şartıyla, eski kod tabanının bir çatalını denemek, değerlendirmek ve ekstra tip kontrolleri, akıl sağlığı kontrolleri koymak ve daha yeni derleyicinin giriş / çıkış veri kümeleri üzerinde herhangi bir etkisi vardır.
Daha sonra patronunuza gösterebilirsiniz, " İşte güncellenmiş kod tabanı, yeniden düzenlenmiş, daha çok endüstri tarafından kabul edilen C99 / C11 standartlarına uygun ... ".
Yani, üzerinde tartılması gerekecekti kumar çok dikkatli , değişime direnç bu ortamda orada gösterebilir ve daha yeni şeyler dokunmak reddedebilir.
DÜZENLE
Sadece birkaç dakika oturdu, bu kadar fark etti, K & R tarafından üretilen kod 16bit'lik bir platformda çalışıyor olabilir, olasılıklar, daha modern bir derleyiciye yükseltme aslında kod tabanını kırabilir, mimari açıdan düşünüyorum, 32bit kod üretilecekti Bu başka olduğunu, giriş / çıkış veri setleri için kullanılan yapılar üzerine komik yan etkileri olabilir kocaman dikkatlice tartmak için faktördür.
Ayrıca OP, kod tabanını oluşturmak için Visual Studio 2008'i kullandığından bahsettiğinden, gcc kullanmak MinGW veya Cygwin'i çevreye getirmeye neden olabilir, bu da hedef Linux için değilse, çevre üzerinde bir etki değişikliği olabilir. Denemeye değer, eski K&R kod tabanındaki gürültüyü en aza indirmek için derleyiciye ek anahtarlar eklemek zorunda kalabilir, diğer önemli şey, hiçbir işlevin bozulmadığından emin olmak için çok fazla test yapmaktır, ağrılı bir egzersiz olabilir.