Remelem valaki kisegit:
#ifndef __TOLLBOT_INTERFACE_H__
#define __TOLLBOT_INTERFACE_H__
#endif
Ezt ha valaki nekem kifejtene?
Az a kerdes, hogy a #define es az #endif kozott van-e valami!
1) Ha nincs, akkor egyszeruen csak el akarta kerulni a "symbol redefined" warningot.
2) Ha van, akkor ez egy header-fileban fordulhat elo (TOLLBOT.H), es a tobbszoros beillesztes (#include) okozta tobbszoros definicio ellen vedi meg a #define es az #endif kozotti reszeket
PS: azon ne aggodj, hogy a definialt szimbolumnak nincs erteke, nem kotelezo, hogy legyen.
Egyébként már nagyából értem a C szintaktikáját, nem a C-s gondolkodás móddal van már annyira a gond, hanem azzal, hogy a tényleges lehetőségeimet nem ismerem, amiket nyujt.
Amit úgy konkréten nehezen tudok fölfogni, azok a pointerek (*) és a címe (&). (ha jól írtam a nevüket meg őket magukat)
Nem azzal van a gond, hogy Cygwin-en nincs XFree.
Tudom, hogy van. Azzal van a gond, hogy fölraktam Cygwin-re, de aztán sem az Mplayer (egyébként úgy portolták Cygwin-re a fejlesztői, hogy gyakorlatilag használhatatlan volt) sem egyéb programoknak a configure szkriptje nem ismeri föl. Próbálkoztam megkeresni a ./configure-ban azt a metódust, ahogy felismeri, de nem találtam.
Nem egy X írásába akarok belefogni!!!
(azért hülye nem vagyok... :)
HA jól tudom, ez nem kell, mivel van valami HTML környezet, ami nem szedi ki az ilyen dolgoka. Csak a neve nem jut eszembe. Aki tudja, írja már le, mert elég sokat inkludolgatunk ide is.
Egy nagyon fontos dolgot elfelejtettem: adatszerkezetek.
Tisztába kell jönni mibenlétükkel, és C-beli megvalósításukkal. Enélkül nem lehet programozni. Erröl nem tudok irodalmat, nekem egyetemen tanították (egész jól).
így első programozói feladatok között szerepelhet:
verem, sor, keresőfa, egy- és kétirányba láncolt lista megvalósítása, cirkuláris lista, és ha nagyon tudsz már, akkor mondjuk egy B vagy B+-fa (nekem az utolsó kettőre eddig nem volt türelmem). Ezek azért is jók, mert programozni is tanulsz velük rendesen, meg elég sokat kell mutatózni, ami a C-ben megkerülhetetlen.
És még egy cím, ami 2 dolog miatt sem biztos, hogy jó: www.prog.hu
Egyrészt most valamiért nem érem el, másrészt nem nagyon nézegettem a kezdő szintű C-s dolgokat, de amit láttam, az űgy emlékszem jó volt. És talán adatszerk dolgokat is találsz itt (bár ez se biztos). Na mind1. Nézd meg.
Ennek foleg az elso 2 sorat nem ertem.
Ha ebben valaki kisegitene.
chandinfo=a struktura neve
*FindChan= a struktura definicioja(adattagjai), tehat vegulis egy fuggvenyrol van szo. Miert nincs egy ';' a vegen?
Eddig en _csak_ ilyen "szokvanyos" strukturaat lattam:
struct struktura_azonosito{ tipus1 tag1;
tipus2 tag2;
tipusn tagn;
} ;
struktura_azonosito struktura_valtozo;
(vagy amikor egybe van vonva:
tipusn tagn;
} struktura_valtozo;
)
Szal ami nagyon idegen(magyarazatra szorul):
Hogy lehet meg 1x megadni fuggvenyargumentumkent a structura_azonositot?
Meg miert nincsen ';' a vegen????
(nem, nem a programba sincs pontosvesszo, es hiba nelkul fordul.)
Valahogy valaki valamilyen utan vilagositson fel...;P
Ize most jutott eszembe:(reggel mindig tisztabb az ember feje):
olvastam valahol(talan pont az Xfree site-jan?),
szal sztem van az X szervernek(XFree86), cygwines portja.
De amugy eleg durva lehet csak ugy belefogni egy X irasaba....;))))
(de azert sok szerencset...:)
Ehh Egoist el se hiszed mennyit szenvedtem azzal a biteltolo-s peldaval.
Valahogy Solaris/Sparcon az istennek se akart mukodni.
Aztan, hogy mar ne idegesitsem magam eldontottem magamban, hogy
biztos a Sparc processzor miatt(meg q Big endian, ize miatt nem muxik.
A peldakat nem kell aranyszabalynak venni, es az elmelet miatt kedveltem. ertheto.
Viszont nagyon keves, a fajlkezelesnel nincs egy iagazn komoly program.
Szal kiindulasnak jo, de semmi tobb.
BaliHB: en bot-irasba fogtam bele.
Sztem keres valami egyszeru progit freshmeaten(50-200kbajt) probald megerteni, es irdd meg magad. (valami konzolosat)
De mig nekem nem sikerult, addig ne vedd aranyszabalynak.
Mivel akármilyen jó, és majdnem C sebességü is a C++, azért mégis csak majnem olyan gyors. És ez mondjuk egy kernelnél igencsak számít (méghacsak 5%-ról van szó, akkor is, de azért ennél többről van szó általában).
Szerintem full kezdő szintről néhány év, amíg értelmesen és hasznosan bele tudsz nyúlni "komolyabb" kódokba, de legalább 1 év, ha rengeteg időt rászánsz.
Én azt látom, hogy programozó szakon full kezdő szintől 1/2 év alatt szinte senki (csak ~5%) nem jut el addig, hogy egy 100 soros egyszerű feladatot megoldó programot megírjon mondjuk 20* annyi idő alatt, mint egy tapasztalt programozó.
A programozásnál nem is annyira a nyelv megismerése a fő probléma, mert ezt néhány hónap alatt megteheted, hanem a "programozói gondolkodás" elsajátítása, és az adott nyelven való gondolkodás elsajátítása.
Aműgymeg ha van egy kis időd olvasgatni, valamelyik topikban full kezdő szintről próbáltuk egyengetni Individual fejlődését C++ nyelv megismerése céljából. kb 100 hozzászólást találhatsz különböző kérdésekben az adott topikban, amiből megértheted/sejtheted, milyen problémák merülnek fel egy ilyen tanulási folyamat során.
Full kezdő vagyo, ismerem az if, while, do-while, szviccs, meg a hasonló cuccokat. Kb-ra értem az inklúdos dolgokat, és jelenleg egy C könyvet olvasgatok (Programozzunk C nyelven!, meg van egy Herbert Schildt: C/C++ Referenciakönyvem is, amit már kb-ra átolvasta, tahát abból a lényegen átrágtam magam, mégsem tudok megírni egy értelmes C programot).
Egyszerűen csak belekezdeni nehéz a dologba. Pascal-t az úgy nagyábol ismerem, de csak nagyon felületes szinten (ippeghogy). HTML-t már régóta tudok, de azt könnyű volt megtanulni, mert ha valami módosítottam a forráson, azt azonnal láttam a böngészőben, de ez a komolyabb programnyelvekkel nem így van.
Hogyan induljak neki? Mi lenne az, amivel meg tudnék birkózni? Mit tegyek? Eddig még egy olyan GPL programmal sem találkoztam, aminek értelmessen bele tudtam volna nyúlni a forrásába (najó 1 kivétel van. Elkezdtem magyarítani a Quake2-t, de az nem kötött le, mert nagyon primitív dolog volt és nem fejlődtem tőle semmit).
És még valami: szerintem a C-röl szóló könyvek az újabb szabvány megjelenéséig nem számítanak elavultnak. Azt pedig nem 1-2 évente adnak ki. Más kérdés a Borland és egyéb változatok, ahol az újabb verzióhoz, lehet, hogy újabb könyv kell, verziókat meg váltanak 1-2 évente, de az nem C könyv, hanem Borland/Turbo/... C könyv.
Erre a könyvre én azt mondtam a gyakorlaton, hogy olvasgatni szabad, mert bizonyos dolgokat tényleg könnyebb ebböl megérteni, mint a Kernighanéböl, de nem szabad túl komolyan venni. Akkor nem lesz baj.
Az egész köyvben ugyanis alig van hordozható kód. Az típusok méretét annyinak veszi, amennyi a Turbo C-ben (vagy mit tom én melyikben), a biteltoló műveletek során szerinte a felszabaduló bitek helyére 0 kerül, ...
Az általad feltett kérdésre viszont válaszol: 260. oldal.
Mar nem egy helyen lattam. Most botokat nezek(IRC), de pl az mplayer is tele van ilyenekkel, ha jol emlekszem.
Konyvben ennyit talaltam:
__DATE__ __TIME__ __FILE__ __LINE__ __STDC__
EZEK A _SZABVANYOS_ eloredefinialt makrok.
(tehat az ANSI C szabvanyban ez az _5_ van benne)
Szal sztem foleg debugnak jok ezek a makrok.
(Egoist: Nekem amit itt forgatok mint konyvet: ProgramozzunkC nyelven-Benko"-ektol.)
Nem tul sok minden van benne, de ami benne van, az jol le van irva. Bar ez meg ilyen regi MS-DOS-ra
epulo C programozas. Egy fejezet(Gafikus fugggvenyek hasznalata turbo C nyelven)40 oldalon keresztul
teljesen hasznalhatatlan. MEg a turbo pascal, es
a turbo C osszehasonlitasa is.
De 350-400 oldal hasznalhato belole.)
Az a gond ezekkel a C-s konyvekkel, hogy mar mind
elavult sajnos. Tul sok kesessel jonnek ki konyvek.
Meg olyan nincs, hogy valaki ir egy konyvet Mo-n.
Mindig leforditjak a konyveket angolbol, meg mire amerikaban is kiadjak, mar ott is el van avulva
mire leforditjak, kiadjak itthon, az mar 1-2 eves keses.
Ezert probalok programokbol tanulni.
venyek hasznalata turbo C nyelven)40 oldalon keresztul
teljesen hasznalhatatlan. MEg a turbo pascal, es
a turbo C osszehasonlitasa is.
De 350-400 oldal hasznalhato belole.)
Az a gond ezekkel a C-s konyvekkel, hogy mar mind
elavult sajnos. Tul sok kesessel jonnek ki konyvek.
Meg olyan nincs, hogy valaki ir egy konyvet Mo-n.
Mindig leforditjak a konyveket angolbol, meg mire amerikaban is kiadjak, mar ott is el van avulva
mire leforditjak, kiadjak itthon, az mar 1-2 eves keses.
Még 1 valami (bocsesz. de fáradt vagyok, és lassan jár az agyam):
az előfordító sima replacet mível. Ez valóban magába foglalhatja az üres -re való cserét is.
De azért jobban örőlnék, ha megnézhetném az ANSI C szabvány mit ír. Addigis én C alatt odaírok egy 1-est a végére, de nagyon valószínűnek tartom, hogy anélkül is jó.
Most néztem meg Stroustrup C++ könyvében az állomány örszemek címszót. Ott sincs helyettesítő valami. Ezekszerint C++ -ban tuti elég ennyi. Viszont C -ben azért nem vagyok biztos, hogy teljesen szabályos, bár a gcc -Wall -ansi nem szól semmit rá. Ez általában azt jelenti, hogy OK-s a dolog. Bár a /usr/include -ban levő header file-ok odabiggyestsztenek a végére egy 1-est, és szerintem ez így logikusabb is, és ez aztán abszolút tuti jó.
Miért használják a komolyabb dolgokhoz inkább a sima C-t
Minél inkább?
Mostanában próbálok belefogni a programozásba, de elág nehézkessen megy. Ha valaki tudna pár jó tanácsot adni, hogy hogyan fogjak neki, akkor azt szivessen fogadnám.
(mostanában a Cygwin X-Box-ra való portolása izgat a legjobban, XMMS-el és Mplayerel együtt).
Ha ezt komolyan gondolod, akkor vagy tényleg most fogtál bele a programozásba, vagy már egy ideje programozol, de akkor mit jelent az, hogy most fogtál bele? Ha abszolút kezdő vagy, akkor az első tanácsom, hogy add egy kicsit alább, majd késöbb ráérsz ilyen méretű feladatokra.
Amúgymeg milyen jellegű tanácsokat vársz? Mennyire vagy kezdő? Milyen és mennyi tapasztalatod van? Mit akarsz elérni?
Üdv: Ego
PS: Nekem úgy rémlik, hogy a fejlesztők "portolták" cygwin alá is valamelyik verzióját a MPlayernek (,,csak úgy poénból").