Egy kerdest kaptam, es nem tudok valaszolni:
void f1() {
void f2() {
printf("ize\n");
}
f2();
printf("ecet\n");
}
Ez valami nested fv nevu gcc bovitmeny. Letezik-e ez valamelyik ujabb C-szabvanyban? (Ha igen, akkor melyikben es mi ertelme van? )
- 6981 megtekintés
Hozzászólások
Azok után, amit ma láttam, már semmin sem csodálkozom.*
Anélkül, hogy valaha is használtam volna, ennek szerintem az az értelme, hogy az f2 fg-t az f1-en belül definiálod, a láthatósága csak az f1-re terjed, és a többi függvényből nem is tudod elérni. Hogy ez mennyiben javítja az olvashatóságot, a program átláthatóságát, azt mindenki döntse el maga ;)
* kivonatosan:
switch (state_in->step)
{
while (1)
{
case step_a:
case step_b:
case step_c:
case step_d:
}
}
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
*-hoz: ez meg WTF????
A'rpi
- A hozzászóláshoz be kell jelentkezni
hát ha tényleg ez szerepel, akkor érdekes refaktoringnak mondanám :-)
- A hozzászóláshoz be kell jelentkezni
Itt látható eredeti formájában:
http://sourceforge.net/projects/libb64
cdecode.c
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
azannya
Hogy precív legyek, egy do ciklust belehányni egy switch közepibe ilyetén módon, az valahogy nekem a perverzitás fogalomkörébe tartozik, és mint ilyen, valószínűleg sűrűn csuklana a mamája annak, aki nekem ilyen kódot rak az orrom alá. De ez persze csak annyit jelent, hogy lemaradtam elméleti programozás órán.
- A hozzászóláshoz be kell jelentkezni
Ezért jó, ha valaki assembly-ből lép fel C-re!
Marha ronda, de zseniális.
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
Vagy ezért nem jó, nézőpont kérdése. :)
BTW ez lehetett zseniális akkor, de manapság (ahogy a Wikipedia is említi) esetleg többet árt mint használ...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
a lathatosag cigany megoldasa :)
---
Egy jól megállapított probléma félig megoldott probléma.
- Charles Kettering
- A hozzászóláshoz be kell jelentkezni
Hm, ez a lokális változókhoz való hozzáférés sokat segíthet. (Mármint később az ősz hajszálak számának növelésében.)
- A hozzászóláshoz be kell jelentkezni
ugy tudom gcc specifikus, es raadasul kavaras van a stack-ben is miatta ami miatt ujabban kernel tamogatas is kell hozza
A'rpi
- A hozzászóláshoz be kell jelentkezni
Win7 alatt Cygwinnel ment...
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
Valszeg az az értelme, hogy az implementálással a világ nem tudja elfelejteni, hogy valaha is létezett Pascal nevű programnyelv, és annak "először jó ötletnek tűnt" fícsörei.
- A hozzászóláshoz be kell jelentkezni
GCC only feature, és mint ilyen eleve kerülendő.
Értelmesnek tűnő felhasználási módja lehet, ha pl így definiálunk egy összehasonlító fv-t a qsort vagy bsearch meghívásához, de nem akarjuk, hogy ez máshonnan elérhető legyen.
Egyébként meg: http://en.wikipedia.org/wiki/Nested_function
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"Értelmesnek tűnő felhasználási módja lehet, ha pl így definiálunk egy összehasonlító fv-t a qsort vagy bsearch meghívásához, de nem akarjuk, hogy ez máshonnan elérhető legyen."
Ennyi erővel támogathatnák az anonymous fv-eket is...
- A hozzászóláshoz be kell jelentkezni
van hasonlo: apple blocks, snow leopard ota elerheto
- A hozzászóláshoz be kell jelentkezni
megplusz az internal linkage (ld. static) pont erre való
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Miért használna valaki C-t, amikor C++-it is használhat? Ahol van értelme a C-nek (linugz kernel, beágyazott rendszerek) ott könnyen lehet, hogy nem (csak) gcc-vel fogsz fordítani, akkor meg ez a fícsör használhatatlan, jobb nyelvekben meg van rá külön eszköz.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
kernelt is lehet c++-ban irni
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Ennek ellenkezőjét senki nem állította. LINUX kernelt viszont (amiről én beszéltem), bajos. Egyrészt mert nagyon C-s az egész, nem szívesen fogadja be a C++-t, másrészt Linus egy barom, és úgysem kerülne be soha mainlineba.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni