Hirdetés
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
jattila48 #4467 üzenetére
Azt hiszem, sikerült kisilabizálni a választ. Függvény nevek esetén a név dekoráció (vagy manglálás) azért kell, hogy a linker meg tudja különböztetni az overload-olt fv. neveket. Ez világos (és eddig is az volt). Függvény pointer nevek azonban nem overload-olhatók, ezért ott nincs szükség név dekorációra, így az extern "C" deklarációnak (ami elnyomja a C++ név dekorációt) sincs értelme. Gondoltam én. Csakhogy fv. pointer nevek esetén a dekorációt nem az overload-olás miatt használják, hanem a hívási konvenció miatt. A különböző TU-kban deklarált és definiált ugyanolyan nevű fv. pointereknek meg kell egyezni a hívási konvencióban. Eddig azt gondoltam, hogy nincs külön C és C++ hívási konvenció (mint ahogy MS fordítóknál nincs is), de elképzelhető, hogy más fordítóknál ez másképp van. Legalábbis a lehetőségét fenntartják.
érdekes olvasmány: [link]
Idézet a cppreference.com -ról:
"Since language linkage is part of every function type, pointers to functions maintain language linkage as well. Language linkage of function types (which represents calling convention) and language linkage of function names (which represents name mangling) are independent of each other"
Tehát a fv. típus és fv. név language linkage-e (mint pl. az extern "C") két különböző, és független dolog. Eszerint fv. pointer esetén a language linkage a pointer által mutatott fv. típusára utal (hívási konvenció), nem pedig a fv. pointer névre.
Elnézést a hosszú hozzászólásért, remélem azért érthető volt min problémáztam.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Bibliai bőség a Tesla negyedik mestertervében
- iPhone topik
- Kézbe fogható paradoxon lett az iPhone Air
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- Star Wars: The Old Republic - MMORPG
- Nagyon erős ajánlat lett az Apple Watch SE 3
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- PlayStation 5
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- ThinkPad (NEM IdeaPad)
- További aktív témák...
- AZONNALI SZÁLLÍTÁSSAL Eladó Windows 8 / 8.1 Pro
- GYÖNYÖRŰ iPhone 12 Pro 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS2919
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Felsőkategóriás merev csöves Gamer PC! I7 12700KF / RTX 3090 24GB / 32GB DDR5 / 1TB SSD!
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest