Nếu nó không bị hỏng, đừng sửa nó
Sếp của bạn nghe có vẻ đúng khi nói điều này, tuy nhiên, yếu tố quan trọng hơn , là bảo vệ an toàn đầu vào, đầu ra, tràn bộ đệm. Thiếu những thứ đó luôn luôn là liên kết yếu nhất trong chuỗi từ quan điểm đó bất kể trình biên dịch được sử dụng.
Tuy nhiên, nếu cơ sở mã là cổ xưa và công việc đã được đưa ra để giảm thiểu các điểm yếu của K & R C được sử dụng, chẳng hạn như thiếu an toàn loại, các lỗi không an toàn, v.v., hãy cân nhắc câu hỏi " Sẽ nâng cấp trình biên dịch lên C99 hiện đại hơn / Tiêu chuẩn C11 phá vỡ mọi thứ? "
Với điều kiện là có một đường dẫn rõ ràng để chuyển sang các tiêu chuẩn C mới hơn, có thể gây ra tác dụng phụ, tốt nhất nên thử một ngã ba của cơ sở mã cũ, đánh giá nó và đưa vào kiểm tra loại bổ sung, kiểm tra độ tỉnh táo và xác định xem có nâng cấp lên không trình biên dịch mới hơn có bất kỳ ảnh hưởng nào đến bộ dữ liệu đầu vào / đầu ra.
Sau đó, bạn có thể hiển thị cho sếp của mình, " Đây là cơ sở mã được cập nhật, được tái cấu trúc, phù hợp hơn với các tiêu chuẩn C99 / C11 được chấp nhận trong ngành ... ".
Đó là canh bạc sẽ phải được cân nhắc, rất cẩn thận , khả năng chống lại sự thay đổi có thể hiển thị ở đó trong môi trường đó và có thể từ chối chạm vào những thứ mới hơn.
BIÊN TẬP
Chỉ cần ngồi lại vài phút, nhận ra điều này, mã tạo K & R có thể đang chạy trên nền tảng 16 bit, rất có thể, việc nâng cấp lên trình biên dịch hiện đại hơn thực sự có thể phá vỡ cơ sở mã, theo suy nghĩ về kiến trúc, mã 32 bit sẽ được tạo , điều này có thể có tác dụng phụ buồn cười trên các cấu trúc được sử dụng cho bộ dữ liệu đầu vào / đầu ra, đó là một yếu tố lớn khác để cân nhắc cẩn thận.
Ngoài ra, vì OP đã đề cập đến việc sử dụng Visual Studio 2008 để xây dựng cơ sở mã, sử dụng gcc có thể tạo ra môi trường cho MinGW hoặc Cygwin, có thể có sự thay đổi tác động đến môi trường, trừ khi, mục tiêu là dành cho Linux, thì nó sẽ là đáng để thử, có thể phải bao gồm các công tắc bổ sung cho trình biên dịch để giảm thiểu nhiễu trên cơ sở mã K & R cũ, điều quan trọng khác là thực hiện nhiều thử nghiệm để đảm bảo không có chức năng nào bị hỏng, có thể là một bài tập đau đớn.