Hirdetés
- Gurulunk, WAZE?!
- Luck Dragon: Asszociációs játék. :)
- Dell Venue 8 Pro
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mr Dini: Mindent a StreamSharkról!
- gban: Ingyen kellene, de tegnapra
- gerner1
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Aktív témák
-
Jester01
veterán
Nem, az csak véletlenül jó, mert alacsony szinten a C calling convention szerint a hívó és nem a hívott veszi le a paramétereket a verembõl. Induláskor a main mindenképp megkapja az említett 2 paramétert is (nézd meg debuggerrel). Szintén a calling convention miatt mûködik a void main is, ugyanis a visszatérési érték egy regiszterben van, amiben ígyis-úgyis lesz valami szemét.
int main()
{
return 0;
}
$ gdb a.out
(gdb) br *main
Breakpoint 1 at 0x8048374: file t.c, line 2.
(gdb) r
Starting program: /var/tmp/a.out
Breakpoint 1, main () at t.c:2
2 {
(gdb) x/x $esp+4
0xbf9714d0: 0x00000001 Ez itt az argc
(gdb) x/x $esp+8
0xbf9714d4: 0xbf971544 Ez itt az argv
(gdb) p *(char**)0xbf971544
$1 = 0xbf971b47 ''/var/tmp/a.out'' Ez meg az argv[0], vagyis a prog neve -
ReJim
őstag
na de lehet be fog zavarni, ha nagyon eltér a szintaxisa a delphi vonaltól!

sajna a suliban ezt a vonalat fogjuk tanulni...
és azt jól sejtem, hogy a windowsos és unixos rendszereken csak a header az eltérés
?
nincs valakinek egy jófajta C könyve pdf-be?
meg egy lpt példája? (vagy az előző az működik?)
Aktív témák
Hirdetés
- Lenovo IdeaPad Slim 3 Ryzen 7 8840HS 15" FHD+ 16GB 1000GB Teljeskörű garancia
- 27%! LG 86UR76006LC (86") UHD (Active HDR, 60 Hz, Smart TV)
- ASUS Vivobook OLED S513E notebook, laptop
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C Dock Gen2 (akár 3x4K felbontás)
- Dell és HP szerver HDD caddy keretek, adapterek. Több száz darab készleten, szállítás akár másnapra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





