Ana işlevi kendi dosyasında ayrı tutmak iyi bir uygulama mudur?


14

İçinde sadece ana işlevi olan ve diğer tüm işlevlerin arabirim haline getirilebileceği bir main.c dosyası olan bir main.c dosyası olması iyi bir uygulama mudur?

Kesin bir kural yoksa, bunu yapmak ve yapmamak ne zaman iyidir?

Yanıtlar:


15

İdeal olarak, yeniden kullanılabilir kodun bir parçası olarak düşünülebilecek tüm çalışmalar kütüphane şeklinde oluşturulmalıdır . Denge çalışması, main()ikamet edileceği yerde ayrı olması gereken bir uygulamadır .

Ama main()yalnız başına tek başına oturmak zorunda değildir. Gibi işlevler parse_arguments(argc,argv) ayrı yerine ana ile birlikte olmalıdır.


7

Kodlama standardımız main () 'nin main'de olmasını gerektirir. C. Main.c içindeki diğer yöntemler, yüksek düzey hata işleyicileri ve main için yardımcı işlevler olma eğilimindedir (bkz. @Dipan yanıtı "parse_arguments" ve "display_help" vb.

Uygulanması gereken iyi bir kural, bir işlev çalışan uygulamayı desteklemekten ve iş mantığı yapmaya başlamaktan daha fazlasını yapmaya başladığında, anadan çıkma zamanıdır. C


4

İki temel kural vardır:

  1. Okuyucunun main () 'i nerede sakladığınızı merak etmesi gerekmez.
  2. main () alakasız karmaşa içermemelidir.

Main () 'nin her zaman main.c adlı bir dosyada bulunması gerektiğini belirten bir kodlama standardı uygulamak için hem iyi hem de yaygın bir uygulamadır. Bu dosyanın yanı sıra main () de gereksiz dağınıklık içermemelidir.

İdeal olarak main () ve main.c sadece aşağıdakileri içermelidir

  • Program genelindeki başlık dosyalarını içerir.
  • Argv, argc argüman ayrıştırma kodu.
  • Barındırmayan sistemlerde: kritik kayıt ayarları, yığın işaretçisi kurulumu vb. Ancak, yalnızca main () programın ilk giriş noktasıysa.
  • İşletim sistemini veya programın durum makinesini çağıran bir döngüyü veya barındırılan masaüstü sistemlerinde, ana GUI iş parçacığına ilişkin pencerelerin oluşturulması ve başlatılması için çağrı yapar.
  • Yukarıdakilerden herhangi birini işleyen main () denilen dahili (statik) işlevler.
  • Barındırılan bir sistemde: 0 değerini döndürün.

1

Ayrı bir dosyadaki temiz bir giriş noktası, kod akışının kolayca anlaşılmasını ve sürdürülmesini sağlar. Ben her zaman farklı bir dosyada çok küçük ve özlü bir main () işlevi tutmak için bu alışkanlığı olmuştur, bundan sonra program adımlarını takip edebilirsiniz. Sadece temizlik uğruna ayrı tutmak iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.