Nasıl ana içinde bir şey ilan etmek mümkün mü() C ve henüz derleme sonra çalışan bir uygulama var mı? | Netgez.com
SORU
8 Temmuz 2013, PAZARTESÄ°


Nasıl ana içinde bir şey ilan etmek mümkün mü() C ve henüz derleme sonra çalışan bir uygulama var mı?

Bir röportajda bu gibi bir soru ile karşılaştım

Arkadaşın sana tek bir kaynak yazdıran kodu dosya verdi Bu sayılar Fibonacci konsol. Bu main() not taşıdır boş ve içinde herhangi bir ifade yok.
Bunun nasıl mümkün olduğunu açıklar (ipucu: genel örnek!)

Gerçekten böyle bir şey mümkün olabilir bunu nasıl bilmek istiyorum! Şimdiden teşekkürler

CEVAP
8 Temmuz 2013, PAZARTESÄ°


Büyük olasılıkla (veya bir türevi) olarak gerçekleştirilir:

 void print_fibs() 
 {
       //implementation
 }

 int ignore = (print_fibs(), 0);

 int main() {}

Bu kodu ignore main() girmeden önce başlatılması için genel değişkeni fonksiyon. Şimdi sırada küresel başlatmak için, print_fibs() bir şey yap&; bu durumda -, fibonacci sayıları hesaplamak ve bunları yazdırabilirsiniz nerede idam edilmesi gerekiyor. Sorum şu gösterdiğim benzer bir şeyi uzun süre önce sormuştum)

Bu kodu güvenli değil ve genel olarak en iyi Kaçınılması gerektiğini unutmayın. Örneğin, std::cout nesne print_fibs() eğer öyleyse o zaman, yürütülür başlatılmamış olabilir std::cout işlevi ne yapardınız? Diğer durumlarda, bu tür başlatma sırasına bağlı değil mi, ancak daha sonra güvenli başlatma fonksiyonları C ve C ortak bir çalışmaya davet etmek.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011
  • Semantic Mastery

    Semantic Mas

    30 EKÄ°M 2013