SORU
14 Mart 2012, ÇARŞAMBA


C gereksiz ayraç ?

Bir meslektaşım için kod incelemesi bugün yaparken tuhaf bir şey gördüm. Böyle kaşlı ile yeni kod sarmıştı:

Constructor::Constructor()
{
   existing code

   {
      New code: do some new fancy stuff here
   }

   existing code
}

Sonuç varsa, bu nedir? Bu iş için nedeni ne olabilir? Bu alışkanlığı nereden geliyor?

Düzenleme:

Girdi ve bazı sorular aşağıda dayanarak ben zaten bir cevap işaretlenmiş olsa bile bu soru için biraz eklemek zorunda olduğumu hissediyorum.

Çevre gömülü cihazlar. Eski C kodu C giyim sarılmış bir çok şey var. C geliştiricileri açık bir yeri vardır.

Bu kod parçası kritik bölümler vardır. Sadece bu kod parçası gördüm. Ana bellek ayırmalarını bitti, ayarlanan bazı bayraklar sadece yok, ve bazı bit öldürmek.

Ayraç içine alınmış kodu gibi bir şey:

{
   bool isInit;
   (void)isStillInInitMode(&isInit);
   if (isInit) {
     return isInit;
   }
}

(Kod aldırmayın, kıvırcık parantez sopa... ;) ) Kaşlı ayraçları sonra daha çok bit öldürmek, devlet denetimi ve temel bazı sinyal vardır.

Adamla konuştum ve onun motivasyon gerçekten açamadım bu değişkenleri adlandırma çatışmalar ve bazı diğer kapsamını sınırlamak için.

Benim POV bu oldukça garip görünüyor ve kıvırcık parantez bizim kod olması gerektiğini sanmıyorum. Bir ayraç ile kod ama yöntemleri kodu yerine ayrı gerekmiyor mu? surround neden bütün cevapları iyi örnekler gördüm

CEVAP
14 Mart 2012, ÇARŞAMBA


Olası bir amaç 4**. Ve otomatik depolama ile değişkenler kapsam dışına gittiğinde yok olduğundan, bu da bir yıkıcı aksi takdirde daha önceki çağrılacak etkinleştirebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog2

    EEVblog2

    2 HAZİRAN 2014
  • TechXCentral

    TechXCentral

    12 Temmuz 2011
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011