C programozási nyelv

Save this PDF as:
 WORD  PNG  TXT  JPG

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "C programozási nyelv"

Átírás

1 C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15

2 A fordítás menete Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 2 / 15

3 A fordítás menete progc Előfeldolgozó Átmenti állomány Fordító progobj más obj-tek könyvtárak indító kód Linker futtatható kód Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 2 / 15

4 Az fordítás elemei Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

5 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

6 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat fordító (compiler) az átmeneti állományból relokálható bináris állományt az un object kódot állitja elő Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

7 Az fordítás elemei előfeldolgozó (precompiler) kiszedi a fordítás számára felesleges elemeneket a forrás állományból és végrehajtja az előfeldolgozó utasításokat fordító (compiler) az átmeneti állományból relokálható bináris állományt az un object kódot állitja elő linker összeszerkeszti az object állományokat, a használt könyvtárakat és az un indítókódot Ezzel futtatható állományt hoz létre Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 3 / 15

8 Az előfeldolgozó utasítások Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

9 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

10 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, az előfeldolgozó utasításokat nem zárja le ;, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

11 Az előfeldolgozó utasítások minden előfeldolgozó utasítás a # karakterrel kezdődik, az előfeldolgozó utasításokat nem zárja le ;, az argumentumukat nem tesszük zárójelbe (néhány esetben meg lehet tenni) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 4 / 15

12 #include utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

13 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

14 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

15 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

16 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: #include <stdioh> Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

17 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

18 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> #include "enyemh" Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

19 #include utasítás Az argumentumában megadott fájlt az adott helyen végigolvassa Úgy tekinti az include fájlban lévő sorokat, mintha az a program része lenne Az include fájl lehet gyári: és lehet általunk előállított: #include <stdioh> #include "enyemh" Van olyan rendszer, amely különbséget tesz a jelölés szerint Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 5 / 15

20 Mi legyen és mi ne legyen az include fájlban Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

21 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

22 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

23 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

24 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

25 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

26 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

27 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: változó deklaráció, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

28 Mi legyen és mi ne legyen az include fájlban Mi legyen benne: függvény deklaráció (türelem sorra kerül), macro és fordítás idejű konstans (mindjárt jön), típus definíciók (typedef)-ek, struktúra és union definíciók (ez is jön még) Ne legyen benne: változó deklaráció, függvény definíció Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 6 / 15

29 #define utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

30 #define utasítás Szerepe kettős: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

31 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

32 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

33 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

34 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

35 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

36 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

37 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

38 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

39 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

40 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Ha nem férünk ki az utolsó mezőnél egy sorban, akkor az utolsó mező \karakterekkel törhető Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

41 #define utasítás Szerepe kettős: fordításidejű konstanst definiál, makrót definiál Szintaktikailag: #define NEV MIT A #define után kell legalább egy szóköz jellegű karaternek lenni, utána jön a konstans, vagy makró neve, majd újabb szóköz(ök) és jön, amit helyettesíteni akarunk Ekkor már lehetnek szóközök is a mezőben A sort a sorvég karakter zárja Ha nem férünk ki az utolsó mezőnél egy sorban, akkor az utolsó mező \karakterekkel törhető Pl: #define RNG (a>x && A<X+w && \ b>y && b<y+h) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 7 / 15

42 Fordításidejű konstans definálása Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

43 Fordításidejű konstans definálása Ezt írjuk a forrásba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

44 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

45 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

46 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

47 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Miért jó ez nekünk Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

48 Fordításidejű konstans definálása Ezt írjuk a forrásba: #define NULLA 0 a=nulla; Ez kerül az előfeldolgozás után az átmeneti állományba: a=0; Miért jó ez nekünk Mert egyetlen átírással akár több száz helyen is módosíthatunk értéket Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 8 / 15

49 Makró definiálás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

50 Makró definiálás Ezt írjuk a forrásba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

51 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

52 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Ez kerül az előfeldolgozás után az átmeneti állományba: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

53 Makró definiálás Ezt írjuk a forrásba: #define MAX(a,b) (a>b)?(a),(b) z=max(x,y); Ez kerül az előfeldolgozás után az átmeneti állományba: z=x>y?x:y; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 9 / 15

54 #undef utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

55 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

56 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

57 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Példa: #define NULLA 0 Itt érvényes #undef NULLA Itt már nem érvényes Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

58 #undef utasítás Egy #define hatása, vagy az aktuális forrásállomány végéig tart, vagy egy az adott szimbólumra vonatkozó #undef utasításig Példa: #define NULLA 0 Itt érvényes #undef NULLA Itt már nem érvényes Az #undef mind a fordítás idejű konstansokra, mind a makrókra alkalmazható Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 10 / 15

59 A feltételes fordítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

60 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

61 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

62 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

63 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

64 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

65 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb A feltételes fordítás vezérlésére szolgálnak a következő utasítások: #if, #else, #elif, #ifdef, #ifndef, #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

66 A feltételes fordítás A feltételes fordítás fogalma azt jelenti, hogy egy progranrészlet a fordítási folyamat során átkerül-e a forráskódból az átmeneti állományba, vagy nem kerül át Normál esetben természetesen - alaposan megdolgozva - átkerül Azonban kiválasztott kódrészletek esetén ez vezérelhető Miért használunk feltételes fordítást: platfrom független kódot szeretnénk írni, hardver független kódot szeretnénk írni, mást szeretnénk a fejlesztési verzióban, mint az éles futó programban, stb A feltételes fordítás vezérlésére szolgálnak a következő utasítások: #if, #else, #elif, #ifdef, #ifndef, #endif Figyelem mindent feltételes fordítási blokkot #endif utasítás zár le!! Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 11 / 15

67 #if, #else, #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

68 #if, #else, #endif #if kifejezés Feltételes blokk #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

69 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

70 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

71 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

72 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Ha a kifejezés igaz a Feltételes blokk1 fordításra kerül Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

73 #if, #else, #endif #if kifejezés Feltételes blokk #endif Ha a kifejezés igaz a Feltételes blokk fordításra kerül Ha a kifejezéshamis az #if és az #endif között bármi lehet (még gyerek vers is) #if kifejezés Feltételes blokk1 #elsẹ Feltételes blokk2 #endif Ha a kifejezés igaz a Feltételes blokk1 fordításra kerül Ha a kifejezés hamis a Feltételes blokk2 kerül fordításra Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 12 / 15

74 #elif utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

75 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

76 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el #if kif1 #elif kif2 #elif kif3 #elif kif4 #elif kifn #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 13 / 15

77 #elif utasítás Ez tualjdonképpen egy #else #if tehát egyedül nem használható Előnye, hogy egy hosszú - többszörös elágazást lehet csinálni a segítségével egy darab #endif-el #if kif1 #elif kif2 #elif kif3 #elif kif4 #elif kifn #endif Megjegyzés: Dr Schuster György az () ennyirec programozási bonyolult nyelv feltételes Előfeldolgozófordítás utasítások ritka 2011 május 3 13 / 15

78 #ifdef és #ifndef utasítások Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

79 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

80 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Az #ifndef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS nem került definiálásra Tipikus felhasználása header állományokban, pl: Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

81 #ifdef és #ifndef utasítások Az #ifdef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS definiálásra került Teljesen mindegy, hogy milyen értékkel Az #ifndef KONSTANS utasítás akkor tekinthető igaznak, ha a KONSTANS nem került definiálásra Tipikus felhasználása header állományokban, pl: #ifndef char 95NEVHEADER #define char 95NEVHEADER 0 a header fájl érdemi része #endif Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 14 / 15

82 #pragma, #warning utasítás Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

83 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

84 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

85 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

86 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

87 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Pl: a forrásban value##a=5; Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

88 #pragma, #warning utasítás A #pragma előfeldolgozó utasítással a fordító programnak tudunk különböző utasításokat adni Például adott figyelmeztetéseket ki, illetve be tudunk vele kapcsolni A #warning arra szolgál, hogy fordítás közben a felhasználónak küldjünk üzenetet Pl: #warning Hello Ekkor a Hello üzenet kiírásra kerül a fordítás során A ## utasítás (inkább operátor) szövegrészletek összefűzését végzi Pl: a forrásban value##a=5; a befordított kódban valuea=5; Nagyon hasznos programgenerátor írásánál Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 15 / 15

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Programozás 6. Dr. Iványi Péter

Programozás 6. Dr. Iványi Péter Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak

Részletesebben

C programozási nyelv. Dr. Schuster György. 2014. szeptember 18.

C programozási nyelv. Dr. Schuster György. 2014. szeptember 18. C programozási nyelv munkapéldány Dr. Schuster György 2014. szeptember 18. 1 Tartalomjegyzék 1. Bevezetés 6 2. Szintaktikai elemek 7 2.1. Kommentek......................................... 7 2.2. Változók...........................................

Részletesebben

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás 12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás Házi (f0174) Egy sor kiíratási formátuma: "nev: %s; pont: %d;". Olvasd be a kiírt számot úgy, ha tudod, hogy a kiírt

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök Dr. Bécsi Tamás 4. Előadás A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 5. fejezet A C++ fordítási modellje Grafikus Processzorok Tudományos Célú Programozása Kódtól a végrehajtásig Végrehajtás előtt valamikor létre kell jönnie az adott architektúrára jellemző bináris utasításoknak.

Részletesebben

Bevezetés a programozásba Előadás: Fordítási egység

Bevezetés a programozásba Előadás: Fordítási egység Bevezetés a programozásba 2 5. Előadás: Fordítási egység ISMÉTLÉS Tagfüggvény kiemelése struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; void Particle::rajzol() { gout

Részletesebben

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva! A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-

Részletesebben

Forráskód formázási szabályok

Forráskód formázási szabályok Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más

Részletesebben

Fordítóprogramok. Aszalós László. 2009. szeptember 7.

Fordítóprogramok. Aszalós László. 2009. szeptember 7. Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

A C programozási nyelv II. Utasítások. A függvény.

A C programozási nyelv II. Utasítások. A függvény. A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor. Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Cekla. Készítette Doxygen Tue Sep :13:44

Cekla. Készítette Doxygen Tue Sep :13:44 Cekla Készítette Doxygen 1.7.1 Tue Sep 20 2011 14:13:44 TARTALOMJEGYZÉK 1 Tartalomjegyzék 1. Cekla C++ könyvtár deklaratív C++-hoz 1 2. Modulmutató 1 2.1. Modulok............................................

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Paraméter másutt is előfordulhat a makró törzsben, nemcsak az operandus részen, pl.: PL macro p1,p2 mov ax,p1 P2 p1 PL mov INC Adat, INC ax,adat Adat A &, %,! karakterek továbbá a és ;; speciális szerepet

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv II. Dr. Schuster György 2016. március 12. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C2016. programozási március 12. nyelv Utasításo

Részletesebben

C++ Gyakorlat jegyzet 7. óra

C++ Gyakorlat jegyzet 7. óra C++ Gyakorlat jegyzet 7. óra A jegyzetet Umann Kristóf készítette Horváth Gábor gyakorlata alapján. (2018. április 30.) 0.1. Header fájlra és fordításra egységre szétbontás Ha egy darab header fájlban

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Programozás 1. Dr. Iványi Péter

Programozás 1. Dr. Iványi Péter Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására

Részletesebben

2017/01/27 08:59 1/6 Gettext Rendszer

2017/01/27 08:59 1/6 Gettext Rendszer 2017/01/27 08:59 1/6 Gettext Rendszer < Linux Gettext Rendszer A gettext rendszer a programok nemzetközivé tételét valósítják meg. A programozónak a programot egy nyelven kell megírnia, a gettext rendszer

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,

Részletesebben

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2013. október 16. feladatai Emlékeztet : forrásfájl (el feldolgozó fordító) kapcsoló-szerkeszt futtatható állomány tevékenységei: kifejti a makrókat (dene)

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

Programozás C++ -ban 2007/1

Programozás C++ -ban 2007/1 Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv Struktúrák és Unionok Dr. Schuster György 2016. október 6. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási 2016. októbernyelv

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

Kiszolgálók üzemeltetése. Iványi Péter

Kiszolgálók üzemeltetése. Iványi Péter Kiszolgálók üzemeltetése Iványi Péter Linuxon a C fordító gcc Fordítás GNU Compiler Collection C, C++, Object-C, Java, Fortran, Ada nyelveket tud kezelni 42 féle rendszerre és processzorra tud kódot generálni

Részletesebben

Flex tutorial. Dévai Gergely

Flex tutorial. Dévai Gergely Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára

Részletesebben

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type osztály... szegmens sz_név ENDS sz_név a szegmens (szelet) neve. A fordító az azonos nevű szegmens szeleteket úgy tekinti, mintha folyamatosan,

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.

Részletesebben

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Bevezetés a programozásba. 6. Előadás: C++ bevezető Bevezetés a programozásba 6. Előadás: C++ bevezető ISMÉTLÉS PLanG features Utasítások Értékadás, KI:, BE: Programkonstrukciók Elágazás Ciklus Típusok Egész, valós, logikai, szöveg, karakter, fájl Típuskonstrukciók

Részletesebben

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás Mérnöki programozás 7 Szerkesztette: dr. Vass Péter Tamás Függvények Függvény (function) egyedi azonosítónévvel ellátott számítási egység. A függvények formájában kidolgozott programkódok viszonylag egyszerűbb

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

Az AVR programozás alapjai. Előadja: Both Tamás

Az AVR programozás alapjai. Előadja: Both Tamás Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,

Részletesebben

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1 Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include Programozás alapjai C nyelv 11. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.28. -1- Preprocesszor A forrás szöveges előfeldolgozását

Részletesebben

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define) Programozás alapjai C nyelv 11. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.28. -1- Preprocesszor A forrás szöveges előfeldolgozását

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet

Részletesebben

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Programozás alapjai 2.Gy: A C nyelv alapjai P R O Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más

Részletesebben

Haladó DBMS ismeretek 1

Haladó DBMS ismeretek 1 Haladó DBMS ismeretek 1 Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények Ajánlott irodalom Juhász István

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. március 31. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben