A C programozási nyelv IV. Deklaráció és definíció

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

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

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök.

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

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. Függvények. Függvények(2)

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Bevezetés a C++ programozási nyelvbe

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

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

C++ programozási nyelv Konstruktorok-destruktorok

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Kivételkezelés a C++ nyelvben Bevezetés

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

A C programozási nyelv VI. Parancssori argumentumok File kezelé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 a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

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

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Java programozási nyelv 4. rész Osztályok II.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r

5. Gyakorlat. struct diak {

Objektumok inicializálása

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

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

C++ programozási nyelv

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r

Programozás alapjai. 5. előadás

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Alprogramok, paraméterátadás

10. gyakorlat Struktúrák, uniók, típusdefiníciók

OOP. Alapelvek Elek Tibor

C programozási nyelv

JAVA PROGRAMOZÁS 2.ELŐADÁS

Készítette: Nagy Tibor István

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

Algoritmizálás és adatmodellezés tanítása 1. előadás

Óbudai Egyetem. C programozási nyelv

Objektumorientált Programozás VI.

A C++ szigorúbban kezeli a típuseltéréseket, mint a C nyelv Lehetséges típuskonverziók:

Programozás I gyakorlat

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

AWK programozás Bevezetés

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Eljárások és függvények

Web-technológia PHP-vel

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

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

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

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

Objektumok tulajdonságai

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás alapjai. 10. előadás

Bevezetés a programozásba. 8. Előadás: Függvények 2.

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

1. Bevezetés A C++ nem objektumorientált újdonságai 3

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

C programozási nyelv

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

C++ programozási nyelv Struktúrák a C++ nyelvben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

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

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

Virtuális függvények (late binding)

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Típusok és konstansok

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

Bevezetés, a C++ osztályok. Pere László

7. fejezet: Mutatók és tömbök

Programozás C++ -ban

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

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

Programozás I gyakorlat

Java programozási nyelv

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Objektum orientált kiterjesztés A+ programozási nyelvhez

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

Java programozási nyelv 5. rész Osztályok III.

8. gyakorlat Pointerek, dinamikus memóriakezelés

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

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

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

Pénzügyi algoritmusok

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

Programozási Nyelvek: C++

LabView Academy. 4. óra párhuzamos programozás

Átírás:

A C programozási nyelv IV. Deklaráció és definíció Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 1

Definíció és deklaráció Definíció: meghatározza valamely objektum típusát, méretét hatására helyfoglalás történik Deklaráció: valamely objektum típusát, méretét (alapvetÿ jellemzÿit) határozza meg hatására a deklarált azonosító használható hibajelzés nélkül a definíció egyben deklaráció is A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 2

Alapszabály Minden azonosítót a teljes programot tekintve pontosan egyszer kell definiálni kivétel: egy azonosító újradefiniálása (beágyazott hatáskörben) Csak deklarált azonosítók használhatók kivétel: egy (-el követett azonosítót a C nyelv egy int-et visszaadó függvény azonosítójának tekinti Ne használjuk ki ezt a szabályt! (A függvényeket is mindig deklaráljuk!) A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 3

A deklaráció formája tárolási_osztály típusnév deklarátor_specifikátor atárolási osztály és a típusnév közül az egyik elmaradhat, ilyenkor a megfelelÿ alapértelmezés lép életbe. A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 4

Típusnév Típusnév lehet: az alaptípusok ismertetésénél felsoroltak valamelyike struktúra- és unió definíció neve typdef- el definiált típusnevek Alapértelmezés: int A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 5

A deklarátor specifikátor 1. az alábbiak valamelyike lehet: Formája Jelentése azonosító alaptípus azonosító [állandó kifejezés] tömb azonosító [ ] tömb azonosító ( ) függvény a fentiek, elÿttük *- al fentiek mutatói (* azonosító ) () függvénymutató A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 6

A deklarátor specifikátor 2. Korlátozások: Tömb csak az alábbiakból képezhetÿ: alaptípusok mutatók struktúrák uniók tömbök Függvényérték nem lehet: tömb unió függvény de lehet a fentiek bármelyikét megcímzÿ mutató! A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 7

A deklarátor specifikátor 3. Példák: int t[] egészeket tartalmazó tömb int *t[] egészeket megcímzÿ mutatókat tartalmazó tömb int f() egészt visszaadó függvény int *f() egészt megcímzÿ mutatót visszaadó függvény int *(f()) egészt visszaadó függvényt megcímzÿ mutató int (*f())[] olyan tömb, amelyeknek elemei fenti típusú függvény-mutatók A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 8

Tárolási osztályok A definiált objektum érvényességi körét és élettartamát (vagy tárolási módját) határozza meg. auto Lokális változó egy blokkra nézve. Értéke a blokkba való belépéskor határozatlan, a kilépéskor megsz nik. regiszter Olyan auto változó, amelyet gyakran kívánunk használni. Nem alkalmazható rájuk az & operátor extern Általános érvény változó, a program különbözÿ részeiben is érvényes. static Értéke megmarad. (Lehet belsÿ vagy külsÿ.) Érvényességi köre korlátozott. A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 9

Külsÿ azonosítók Külsÿ definíció az, amely minden függvényen kívül helyezkedik el. A függvénydefiníció mindig külsÿ. A külsÿ definíció több függvény számára is ismert. extern tárolási osztály (alapértelmezett): a teljes programra érvényes (globális) static tárolási osztály: csak a definíciót tartalmazó forrásfile-ra érvényes Adatok külsÿ definíciói kerülendÿk! A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 10

Belsÿ azonosítók Egy blokk elején helyezkedik el. auto tárolási osztály (alapértelmezett) register tárolási osztály: gyakran használni kívánt érték, gyors elérésre optimalizálandó static tárolási osztály: a blokkba való belépéskor az elÿzÿ értéke megmarad, de a blokkon kívül nem használható. Ha egy befoglaló blokkban ugyanazt az azonosítót deklaráljuk, a blokkon kívüli deklaráció felfüggesztÿdik. (Újradefiniálás) A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 11

Inicializálás (kezdÿérték adás) 1. Inicializálás nélkül: a külsÿ és a statikus változók értéke garantáltan 0 az automatikus és regiszterváltozók értéke határozatlan. Egyszer változó inicializálása: tár_o típus azonosító = kif A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 12

Inicializálás (kezdÿérték adás) 1. Összetett objektum inicializálása: deklaráció = { kif, kif,...,} A kifejezések az elemek sorrendjében adódnak át. Ha számuk kevesebb, mint amit a deklaráció meghatároz a maradék elemek 0-val töltÿdnek fel. Ha több, hibajelzést kapunk. Tömbök esetén a deklarációból az elsÿ index felsÿ határa elmaradhat, ezt ekkor a kifejezések száma határozza meg. A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 13