üzenetek

hozzászólások


TheVeryGuest
(senior tag)

"...előfordító indirektívát jelöl..." :] Mi az az indirektíva? Mert olyan van, hogy direktíva, egyébként utasítást, parancsot jelöl, melyet az jelen esetbe az előfordítónak címzünk.

Ez amit publikáltál egyébként eddig nem nagyon C++ specifikus, talán ez a két sor az, amiből rá lehet jönni, hogy ez nem C:
"- C++ nyelvben kettő logikai érték van : igaz (1) vagy hamis (0)
- Felsorolt konstansokat enum konstansoknak nevezzük."

Hiányolom a tematikát. Ez most egy sorozatnak egy része, vagy ez minden?

Egyébként mi értelme van kimásolni valamit egy magyar könyvből vagy fordítani angolból? Te jót gyakoroltál vele és ennyi. Meg megvan a benne leszek a TVben feeling. Szerintem először is azt kellene tisztázni, hogy kinek érdemes elkezdeni C/C++-szal foglalkozni. Ehhez tudni kell, hogy ez egy szigorúan típusos, gépközeli gépi kódra fordított nyelv. Gyakorlatilag egy C/C++ fordító egy kurva intelligens assembler. Tehát, ha valaki kezdő és C++-ozni akar az két dolgot jelenthet:
*valami funkciót akar megvalósítani, nagyrészt Ctrl+C-Ctrl+V használatával itt-ott átírva,
*érdekli a gépközeli programozás és szeretne jól megtanulni C/C++-ban programozni, mert érdekes, vagy ne adj isten ebből akar majd egyszer élni.
Az elsőnek érdemes inkább más nyelvet választania, a másodiknak meg nem kell a kedvcsináló, ő úgyis venni fog egy könyvet, vagy letölti a legutolsó ingyen elérhető C++ szabvány draftját.

Definícióról meg deklarációról meg önmagában nem érdemes beszélni. Ez a tankönyvek többségénél is hiba. Mert leírják a szabályokat, de azt nem, hogy miért ilyen. A preprocesszor direktívák és a deklaráció/definíció is akkor nyer értelmet, amikor az ember először rak össze egy komplex több modulos SWt. Ott kiderül, hogy mire is való a deklaráció, az extern előtag, a define/if(n)def guardok.

Ugyanez elmondható a típusok leírásáról. Élő embert nem láttam, aki unsigned long int-et kiírta volna az életben. Úgyis unsigned long-lesz, kivéve, ha karakterre fizetnek. Szóval az előállítható típusnavek felére nincs szükség, mert élő kódban nem fogsz vele találkozni.
A volatile teljesen felesleges egy kezdőnek ilyen alapon jöhetett volna a register meg az auto is. Egyébként eléggé kevéssé valószínű, hogy másik program módosítja az értéket, főleg a mai virtual address space-es világban, inkább egy másik thread használja, vagy valami hardveres regiszter olvasása szokott ilyen lenni, és azt jelzi a fordítónak, hogy ne optimalizáld ki ennek a változónak az írását olvasását CPU regiszterek használatával, mert bármikor megváltozhatnak a jelen kód futásától függetlenül.

Csodálom, hogy az export kulcsszóval nem foglalkoztál, mert már csak az lenne haszontalanabb lévén, hogy a fordítók 99%-ában nincs implementálva, de a szabványban benne van.

Egy kezdőnek, egyébként ezekre a dologra van szüksége:
*egy könvyvre a nyelvről valami olyan nyelven, amit ért.
*tanulásra készített kódrészletekre és feladatokra
*egy jó listára, hogy az adott fordító hibaüzenetei mit jelenthetnek, milyen hibára utalhatnak (a 2.96-os g++ hibaüzenetei például iszonyat szemetek voltak, pontosvesszőhiba esetén a következő sorra hivatkoznak meg ilyenek keményen szokni kell)

üzenetek