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

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • LimeFire

    LimeFire

    2 ŞUBAT 2012