Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C++ - Aký majú význam "podtržítkové" funkcie?

Prečo sa identifikátory mnohých funkcií v C++ začínajú podtržítkami (_)? Aký to má vlastne zmysel? Podľa mňa to dosť zneprehľadňuje kód v zdrojovej podobe. Veď napríklad je try a __try pre VCL? Prečo je C++ také rozdrobené a zneštandardizované? Chápem, že je to pre maximálne využitie možností aktuálneho systému, ale načo try a __try? Taktiež mnohé funkcie v BC++ 3.5 pre DOS boli riešené s potržítkom, ak sa jednalo o typ premennej s väčšou dĺžkou v pamäti. Prečo to nemôže byť ako napr. v Pascale, kde pre všetky typy premenných funguje jedna funkcia, napr. GetTime? Ekvivalent pre BC++ 3.5 je GetTime a _DOS_GetTime. Prečo je to takto sťažené? Veď C++ oficiálne umožňuje viacnásobnú deklaráciu funkcie s inými parametrami.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Napriklad ohledne tech exceptions... je to tak, ze mas na vyber nekolik mechanismu osetreni vyjimek.…
Ynd0r 26.05.2006 23:35
Ynd0r
Dobre, takže tomu povedzme, že rozumiem. Ale prečo teda niečo podobné nie je v Pascale a Object Pasc…
msx. 27.05.2006 00:19
msx.
Aka multiplatformost Delphi??? ::) Ja som teda este nevidel delphi na nejakom DEC, G5, MacOS alebo U…
MM.. 27.05.2006 00:33
MM..
A k čomu je potom to CLX? Edit: SubChild.asp VCL je zalozena na WinControl, CLX je platformove nez… nový
msx. 27.05.2006 15:27
msx.
Akoze vyvinut dnes kniznicu Win+Linux mozes aj pre vyvojove prostredie C/C++, a aj take kniznice exi… poslední
MM.. 27.05.2006 15:46
MM..

Napriklad ohledne tech exceptions... je to tak, ze mas na vyber nekolik mechanismu osetreni vyjimek.
Jeden je definovany v C++ od Stroustrupa a pouziva "try", "catch" a "throw". Ve vetsich projektech ma ale celkem velkou rezii a zpomaluje.
Pak existuje efektivnejsi zpusob, ktery je "zapusten" do woken - ten pouziva "__try", "__except" a "__finally"

 __try{ ... } __except(vyraz){ exception handler }
 __try{ ... } __finally(vyraz){ termination }

Pak jsou jeste MFC exceptions, ale ty sem ted netahejme..
Protoze uvedene zpusoby jsou na sobe nezavisle (dokonce by se mohly i kombinovat, i kdyz je to vetsinou blbost), jsou proste odliseny tema podtrzitkama - a ty oficialni dostaly prednost.

U jinych funkci maji podtrzitka zase jine duvody - treba se tak oznacuji nestandardni nazvy funkci ve standardnich knihovnach, nebo funkce ktere je mozne nahradit makrem...

Dobre, takže tomu povedzme, že rozumiem. Ale prečo teda niečo podobné nie je v Pascale a Object Pascale? Pri C je to spôsobené aj tým, že C je multiplatformový jazyk a teda aby ostala multiplatformnosť zachovaná, tak sú odlišné príkazy s podtržítkom. Ale napr. v Delphi sú komponenty CLX pre zachovanie multiplatformnosti, ale podtržítka nikde. Ako je to teda riešené tam?

Aka multiplatformost Delphi??? ::) Ja som teda este nevidel delphi na nejakom DEC, G5, MacOS alebo Unixe. Existuje?

P.S. snazime sa ti vysvetlit ze sa jedna o odlisenie dvoch roznych veci. Mohlo by sa to volat aj
try1 catch1
try2 catch2

mne sa zda lepsie podtrzitko...

Ak delphi vie len jeden sposob, tak nemas podtrzitka, ale to to je problem delphi ze je obmedzeny.

Zpět do poradny Odpovědět na původní otázku Nahoru