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

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006
  • Tylerron

    Tylerron

    6 AĞUSTOS 2006