🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1755

Re: Metody programowania

#1755
From: Bogdan (bogdro)
Date: Sat, 29 Mar 2008 09:42
56 lines
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-mail
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>

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