Article View: pl.comp.lang.asm
Article #1755Re: Metody programowania
From: Bogdan (bogdro)
Date: Sat, 29 Mar 2008 09:42
Date: Sat, 29 Mar 2008 09:42
56 lines
2617 bytes
2617 bytes
Michał Walenciak pisze:
> Bogdan (bogdro) wrote:
>
>> Oczywiście. To by się linker pogubił dopiero :) Chodzi mi o to, że
>> można napisać coś w stylu
>>
>> class A
>> {
>> void f(int a);
>> void f(char b);
>> }
>>
>> natomiast nie można wewnątrz jednej przestrzeni nazw w asemblerze (np.
>> plik) zrobić 2 takich samych nazw:
>>
>> f:
>> ...
>> ret
>>
>> f:
>> ...
>> ret
>>
>> Dwa osobne pliki, dwie struktury itp. to osobne przestrzenie nazw.
>>
>
> mozesz za to zdefiniować makro o nazwie "f" które w zależnosci od typu
> parametru wywoła f1 bądź f2 ;)
Jakoś pewnie się da. W FASMie (w którym można sprawdzać typ
parametru makra) powinno się dać bez większych kłopotów. Ale to nie
definiuje 2 funkcji o tej samej nazwie, bo kod musi być pod różnymi
etykietami.
> mysle ze w c mimo ze wygląda ładniej to działa tak samo :)
W C posiadanie 2 symboli o identycznej nazwie jest zabronione. Może
ewentualnie w 1 pliku obiektowym i CRT, to wtedy może linker sobie
wybierze.
W C++ to nie działa tak samo, jak makro. Nazwy funkcji są dekorowane
w pliku obiektowym, np. z
void f(int i);
dostajesz "_f_int" (na przykład), a z
void f(char c);
dostajesz "_f_char". Różne symbole, linker się nie gubi, a programista
widzi 2 funkcje z tą samą nazwą.
--
Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<fsl2v3$81v$2@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<fsbkje$2da$1@news.mixmin.net> <fsdeqr$rkd$1@inews.gazeta.pl> <fsej6v$bu8$1@news.onet.pl> <fsft4s$fis$1@inews.gazeta.pl> <fsgfro$u9k$1@news.onet.pl> <fsj8pj$qdo$1@inews.gazeta.pl> <fsksei$efg$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Metody programowania Date: Sat, 29 Mar 2008 10:42:57 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 56 Message-ID: <fsl2v3$81v$2@inews.gazeta.pl> References: <fsbkje$2da$1@news.mixmin.net> <fsdeqr$rkd$1@inews.gazeta.pl> <fsej6v$bu8$1@news.onet.pl> <fsft4s$fis$1@inews.gazeta.pl> <fsgfro$u9k$1@news.onet.pl> <fsj8pj$qdo$1@inews.gazeta.pl> <fsksei$efg$1@inews.gazeta.pl> NNTP-Posting-Host: 66.230.230.230 Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1206783782 8255 66.230.230.230 (29 Mar 2008 09:43:02 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sat, 29 Mar 2008 09:43:02 +0000 (UTC) X-User: bog.d In-Reply-To: <fsksei$efg$1@inews.gazeta.pl> User-Agent: Thunderbird 2.0.0.12 (X11/20080213) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit