Bu C kodu içinde burada neler oluyor? | Netgez.com
SORU
5 EKİM 2011, ÇARŞAMBA


Bu C kodu içinde burada neler oluyor?

Herkes bu C kodu içinde neler olduğunu açıklayabilir. Ve iyi Linux derler yürütür.

#include <iostream>
using namespace std;
int main = ( cout << "Hello world!\n", 195 );

CEVAP
5 EKİM 2011, ÇARŞAMBA


Numarası "195" x 86 RET öğretim kodudur.

C derleyici () benim durumumda gcc "ana" bir işlev olarak bildirilmiş değildi. o tanıyamadı Yok o sadece görür derleyici "ana" simgesi, ve bir fonksiyonu ifade eder varsayıyor.

C kodu

int main = ( cout << "Hello world!\n", 195 );

dosya kapsamında bir değişken başlatılıyor. Bu başlatma kodu C/C çevre ana çağırır önce yürütülür(), ama başlatır sonra "" değişken. print Başlatma "Merhaba, Dünya\! yazdırır"ayarlar değeri ve değişken "ana" 195. n Tüm başlatma yapıldıktan sonra, C C ortam arar"". ana/ Programın adrese bir RET yönergesi (kod 195) koyduk çünkü hemen bu çağrıya döner "". ana

Örnek GDB çıktısı:

$ gdb ./a
(gdb) break _fini
Breakpoint 1 at 0x8048704
(gdb) print main
$1 = 0
(gdb) disass &main
Dump of assembler code for function main:
   0x0804a0b4 < 0>:     add    %al,(êx)
   0x0804a0b6 < 2>:     add    %al,(êx)
End of assembler dump.
(gdb) run
Starting program: /home/atom/a 
Hello world!

Breakpoint 1, 0x08048704 in _fini ()
(gdb) print main
$2 = 195
(gdb) disass &main
Dump of assembler code for function main:
   0x0804a0b4 < 0>:     ret    
   0x0804a0b5 < 1>:     add    %al,(êx)
   0x0804a0b7 < 3>:     add    %al,(êx)
End of assembler dump.

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

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • Nick Pitera

    Nick Pitera

    8 NÄ°SAN 2006