Có phải là thực hành tốt để giữ cho chức năng chính tách biệt trong tập tin riêng của mình?


14

Có phải là một thực hành tốt để có một tệp main.c chỉ có chức năng chính trong đó và không có chức năng nào khác để tất cả các chức năng khác có thể được giao tiếp?

Nếu không có quy tắc dứt khoát, khi nào thì tốt và không làm như vậy?

Câu trả lời:


15

Lý tưởng nhất, tất cả các công việc có thể được coi là một phần của mã có thể sử dụng lại, nên được tạo ra dưới dạng thư viện . Công việc cân bằng, là ứng dụng nên được tách biệt nơi main()sẽ cư trú.

Nhưng main()một mình không phải ngồi một mình. Các chức năng như parse_arguments(argc,argv) nên được cùng với chính thay vì sau đó riêng biệt.


7

Tiêu chuẩn mã hóa của chúng tôi yêu cầu main () nằm trong main.c. Các phương thức khác trong main.c có xu hướng là các trình xử lý lỗi cấp cao và các hàm trợ giúp cho hàm chính (tham khảo @Dipan trả lời "parse_argument", cũng như những thứ như "display_help", v.v.

Một nguyên tắc tốt để áp dụng là khi một chức năng bắt đầu làm nhiều hơn là hỗ trợ ứng dụng đang chạy và bắt đầu thực hiện logic kinh doanh, đã đến lúc nó ra khỏi main.c


4

Có hai quy tắc:

  1. Người đọc không cần phải tự hỏi nơi bạn đã ẩn main ().
  2. main () không được chứa sự lộn xộn không liên quan.

Để thực hiện một tiêu chuẩn mã hóa nói rằng main () phải luôn được đặt trong một tệp có tên main.c là cả thực tiễn tốt và phổ biến. Tệp này, cũng như chính (), không được chứa sự lộn xộn không cần thiết.

Lý tưởng là main () và main.c chỉ nên chứa các mục sau

  • Bao gồm các tệp tiêu đề trên toàn chương trình.
  • Mã phân tích đối số của argv, argc.
  • Trên các hệ thống không có máy chủ: thiết lập thanh ghi quan trọng, thiết lập con trỏ ngăn xếp, v.v. Nhưng chỉ khi main () là điểm đầu tiên của chương trình.
  • Các cuộc gọi để khởi động HĐH hoặc vòng lặp gọi máy trạng thái của chương trình hoặc trong các hệ thống máy tính để bàn được lưu trữ, tạo và khởi tạo các cửa sổ liên quan đến luồng GUI chính.
  • Các hàm nội bộ (tĩnh) được gọi từ hàm main (), xử lý bất kỳ hàm nào ở trên.
  • Trên hệ thống được lưu trữ: trả về 0.

1

Một điểm nhập sạch trong một tệp riêng biệt làm cho dòng mã dễ hiểu và được duy trì. Tôi luôn có thói quen giữ một hàm main () rất nhỏ và súc tích trong một tệp khác từ nơi tôi có thể theo dõi các bước của chương trình. Chỉ vì lợi ích của sự sạch sẽ, nó là tốt để giữ nó riêng biệt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.