ถ้ามันไม่พังก็อย่าซ่อมมัน
เจ้านายของคุณฟังดูถูกในการพูดแบบนี้อย่างไรก็ตามปัจจัยที่สำคัญกว่านั้นคือการปกป้องอินพุต, เอาต์พุต, บัฟเฟอร์โอเวอร์โฟลว์ การขาดสิ่งเหล่านี้เป็นจุดอ่อนที่สุดในโซ่จากจุดยืนนั้นโดยไม่คำนึงถึงคอมไพเลอร์ที่ใช้
อย่างไรก็ตามหากรหัสฐานเป็นแบบโบราณและมีการทำงานเพื่อลดจุดอ่อนของ K&R C ที่ใช้งานเช่นการขาดความปลอดภัยประเภท, ความไม่ปลอดภัยที่ไม่ปลอดภัย ฯลฯ คำถามที่หนักขึ้น " จะอัพเกรดคอมไพเลอร์ให้ทันสมัยมากขึ้น C99 / C11 มาตรฐานทำลายทุกอย่างเหรอ "
หากมีเส้นทางที่ชัดเจนในการโยกย้ายไปยังมาตรฐาน C ที่ใหม่กว่าซึ่งอาจชักนำให้เกิดผลข้างเคียงได้อาจเป็นการดีที่สุดที่จะลองใช้ codebase เก่าประเมินทางเลือกและทำการตรวจสอบประเภทพิเศษตรวจสอบสติและพิจารณาว่าการอัพเกรดเป็น คอมไพเลอร์รุ่นใหม่มีผลกระทบกับชุดข้อมูลอินพุต / เอาต์พุต
จากนั้นคุณสามารถแสดงให้หัวหน้าของคุณ " นี่คือฐานรหัสที่ได้รับการปรับปรุงสร้างใหม่และสอดคล้องกับมาตรฐาน C99 / C11 ที่เป็นที่ยอมรับในอุตสาหกรรม ... "
นั่นคือการเล่นการพนันที่จะต้องมีการชั่งน้ำหนักขึ้นบนอย่างระมัดระวัง , ความต้านทานการเปลี่ยนแปลงอาจแสดงมีอยู่ในสภาพแวดล้อมที่และอาจปฏิเสธที่จะสัมผัสสิ่งใหม่
แก้ไข
เพิ่งกลับมาไม่กี่นาทีก็รู้ว่านี่รหัส K&R ที่สร้างขึ้นสามารถทำงานบนแพลตฟอร์ม 16 บิตโอกาสที่การอัพเกรดเป็นคอมไพเลอร์ที่ทันสมัยมากขึ้นอาจทำลายฐานรหัสได้จริง ๆ แล้วคิดในแง่ของสถาปัตยกรรมรหัส 32 บิตจะถูกสร้างขึ้น สิ่งนี้อาจมีผลข้างเคียงที่ตลกเกี่ยวกับโครงสร้างที่ใช้สำหรับชุดข้อมูลอินพุต / เอาต์พุตซึ่งเป็นอีกหนึ่งปัจจัยใหญ่ที่ต้องชั่งน้ำหนักอย่างระมัดระวัง
นอกจากนี้เนื่องจาก OP ได้กล่าวถึงการใช้ Visual Studio 2008 เพื่อสร้าง codebase การใช้ gcc อาจทำให้เกิดสภาพแวดล้อมทั้ง MinGW หรือ Cygwin ซึ่งอาจมีผลกระทบต่อการเปลี่ยนแปลงสภาพแวดล้อมเว้นแต่เป้าหมายสำหรับ Linux นั้นจะเป็น คุ้มค่ากับการถ่ายภาพอาจต้องมีสวิตช์เพิ่มเติมไปยังคอมไพเลอร์เพื่อลดเสียงรบกวนบนฐานรหัส K&R เก่าสิ่งสำคัญอื่น ๆ คือการทดสอบจำนวนมากเพื่อให้แน่ใจว่าไม่มีฟังก์ชั่นที่ใช้งานไม่ได้