Ģ ([info]smejmoon) rakstīja [info]koderi kopienā,
@ 2008-07-24 08:04:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
extern "C"
kāda ir atšķirība starp
extern "C" T v;
un
extern T v;

iekš to gcc un msvc?


(Lasīt komentārus) - (Ierakstīt jaunu komentāru)


[info]bubu
2008-07-24 21:21 (saite)
Šķiet, ka atšķirība ir tikai C++ valodā. C valodā extern "C" nemaz nevar rakstīt.

Cik zinu extern "C" atslēdz name mangling eksportētajam simbolam. Tik dīvaini, ka mainīgā vārds varētu tikt "manglots". Funkcijas - jā, tām vārds manglojas.

Ja nu vienīgi T ir kautkāda struktūra, tad gan iespējams MSVC samanglo vārdu.
Tb extern "C" T v; nodeklarēts mainīgais vienā failā nokompilēsies ar vārdu _v, taču, ja otrā failā būs tikai T v; (bez extern "C"), tad nekas nesalinkosies kopā.

(Atbildēt uz šo) (Diskusija)


[info]smejmoon
2008-07-24 21:31 (saite)
Paldies. Tā varētu būt. T ir Template, tā ka tur manglošana drošivien notiek uz nebēdu;

(Atbildēt uz šo) (Iepriekšējais)


(Lasīt komentārus) -

Neesi iežurnalējies. Iežurnalēties?