C programlama ders 3

Embed Size (px)

Citation preview

  • 8/3/2019 C programlama ders 3

    1/30

    GENEL KAVRAMLAR

    r.Gr. Mahmut YALIN

    stanbul niversitesiElektrik Elektronik Mhendislii

    Kaynak:C ve Sistem ProgramclarDerneiKurs notu

  • 8/3/2019 C programlama ders 3

    2/30

    Gerek Saylarn Bellekte TutulmasBir gerek say aadaki gibi ifade edilebilir:

    Yukardaki genel denklemdex ifade edilecek gerek say

    b Kullanlan say sisteminin taban deeri (Tipik olarak 2, 8, 10 ya da 16)e stel deer. Bu deer format tarafndan belirlenen emin ve emaxarasndaki bir deerp Ondalk ksm belirleyen basamak saysfk Say sistemindeki basamak deerleri. 0 fk bGerek saylarn ifadesinde, gerek say kabul edilmeyen baz gsterimler

    sz konusudur.Bunlar:sonsuz (infinity)NaN (not a number)deerleridir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    3/30

    Sistemlerin ounda, gerek saylarIEEE (Institute of Electrical andElectronics Engineers) 754 standardna gre tutulur. (IEEE Standard forBinary Floating-Point Arithmetic - ISO/IEEE std 754-1985).Bu standarda gre

    gerek saylar iin iki ayr formatbelirlenmitir:

    1. Tek duyarlkl gerek say format (single precision format)Bu formatta gerek saynn gsterimi genel formle aadaki biimdeuyarlanabilir:

    Bu formatta gerek say 32 bit (4 byte) ile ifade edilir.32 bit ayr ksma ayrlmtr.i. aret biti (sign bit) (1 bit)Aada S harfi ile gsterilmitir.

    aret biti 1 ise say negatif, iaret biti 0 ise say pozitiftir.ii. stel ksm (exponent) (8 bit)Aada E harfleriyle gsterilmitir.iii. Ondalk ksm (fraction) (23 bit)Aada F harfleriyle gsterilmitir.SEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFF

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    4/30

    Aadaki formle gre saynn deeri hesaplanabilir :V, gerek saynn deeri olmak zere:EEEEEEEE = 255 ve FFF...F 0 ise V = NaN (Not a number)

    rnek :0 11111111 00001000000100000000000 (Say deil)1 11111111 00010101010001001010101 (Say deil)EEEEEEEE = 255 ve FFF...F = 0 ve S = 1 ise V = -sonsuzEEEEEEEE = 255 ve FFF...F = 0 ve S = 0 ise V = +sonsuz0 < EEEEEEEE < 255 iseV = (-1)^S * 2^(E - 127) * (1.FFF...F)

    nce saynn ondalk ksmnn bana 1 eklenir. Daha sonra bu say 2(E- 127)

    ile arplaraknoktann yeri ayarlanr. Noktadan sonraki ksm ikinin artannegatif sleriyle arplarak elde edilir. rnekler:0 10000000 00000000000000000000000 = +1 * 2(128 - 127) * 1.0= 2 * 1.0= 10.00= 2

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    5/30

    2. ift duyarlkl gerek say format (double precision format)Bu formatta gerek saynn gsterimi genel formle aadaki biimdeuyarlanabilir:

    Bu formatta gerek say 64 bit yani 8 byte ile ifade edilir.64 bit ayr ksma ayrlmtr.

    stanbul niversitesiElektrik Elektronik Mhendislii

    0 10000001 10100000000000000000000 = +1 * 2(129 - 127) * 1.101= 22 * 1.101= 110.100000

    = 6.51 10000001 10100000000000000000000 = -1 * 2(129 - 127) * 1.101= -22 * 1.101= 110.100000= -6.5

  • 8/3/2019 C programlama ders 3

    6/30

    i. aret biti (sign bit) (1 bit)Aada S harfi ile gsterilmitir.aret biti 1 ise say negatif, iaret biti 0 ise say pozitiftir.ii. stel ksm (exponent) (11 bit)Aada E harfleriyle gsterilmitir.iii. Ondalk ksm (fraction) (52 bit)Aada F harfleriyle gsterilmitir.

    SEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

    stanbul niversitesiElektrik Elektronik Mhendislii

    Aadaki formle gre saynn deeri hesaplanabilir, V saynn deeri olmakzere:EEEEEEEEEEE = 2047 ve FFF...F 0 ise V = NaN (Not a number)

    EEEEEEEEEEE = 2047 ve FFF...F = 0 ve S = 1 ise V = -sonsuzEEEEEEEEEEE = 2047 ve FFF...F = 0 ve S = 0 ise V = +sonsuz0 < EEEEEEEEEEE < 2047 ise V = (-1)S * 2^(EEEEEEEEEEE - 1023) *(1.FFF...F)

  • 8/3/2019 C programlama ders 3

    7/30

    GENEL KAVRAMLAR ve TERMLERAtomlar ve Trleri

    Bir programlama dilinde yazlm kaynak dosyann (program) anlaml en kkparalarna "atom" (token) denir. Bir programlama dilinde yazlm bir metin,atomlardanoluur.Bir kaynak dosya, derleyici program tarafndan ilk nce atomlarna ayrlr. Buileme "atomlarna ayrma" (Tokenizing-Lexical analysis) denir. Farklprogramlama dillerininatomlar birbirlerinden farkl olabilir.

    Atomlar aadaki gibi gruplara ayrlabilir:

    1.Anahtar Szckler (Keywords)2. simler (identifiers)3.leler (Operators)

    4. Deimezler (Constants)5.Dizgeler (Strings)6. Ayralar, Noktalama aretleri (Separators, Punctuators)

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    8/30

    1. Anahtar SzcklerAnahtar szckler (keywords -reserved words) programlama dili tarafndannceden belirlenmi anlamlara sahip atomlardr. Bu atomlar kaynak dosya iinde

    baka bir anlama gelecek biimde kullanlamazlar. rnein bu atomlarndeiken ismi olarak kullanlmalar geerli deildir.Standard ANSI C (C 89) dilinin 32 anahtar szc vardr:

    auto break case char const continue default do double else enum externfloat for goto if int long register return short signed sizeof static

    struct switch typedef union unsigned void volatile while

    Baz programlama dillerinde anahtar szcklerin kk ya da byk harf ileyazlmas bir anlam fark yaratmaz. Ama C'de btn anahtar szckler kkharf olaraktanmlanmtr. C byk harf kk harf duyarl olan (casesensitive) bir dildir.

    C dilinde rnein bir deikene "register" isminin verilmesi geerli deildir.nk"register" bir anahtar szcktr, C dili tarafndan ayrlmtr. Ama bunakarn birdeikene REGISTER, Register, RegisTER isimleri verilebilir, nkbunlar artk anahtarszck saylmazlar.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    9/30

    2. simlerDeikenler, ilevler, makrolar, deimezler gibi yazlmsal varlklaraprogramlama dili tarafndan belirlenmi kurallara uyulmak kouluyla isimler

    verilebilir. Yazlmsal bir varla verilen isme ilikin atomlar isimlerdir (identifier).3. lelerleler (operators) nceden tanmlanm bir takm ilemleri yapan atomlardr.rnein +, -, *, / , >=,

  • 8/3/2019 C programlama ders 3

    10/30

    5. Dizgelerki trnak iindeki ifadelere "Dizge" (string / string litaerals) denir. Dizgelerprogramlamadillerinin ounda tek bir atom olarak alnr, daha fazla parayablnemezler."STRNGLER DE BRER ATOMDUR"

    ifadesi bir dizgedir.

    6. Ayralar, Noktalama aretleriYukarda saylan atom snflarnn dnda kalan tm atomlar bu grubasokulabilir. Genellikle dier atomlar birbirinden ayrma amacyla kullanldklariin ayra (separators, punctuators, delimiters) olarak isimlendirilirler.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    11/30

    Bir C Programnn Atomlarna Ayrlmas:Aada 1'den kullancnn klavyeden girdii bir tamsayya kadar olantamsaylar toplayan ve sonucu ekrana yazdran birC program grlyor:#include int main(){int number, k;int total = 0;

    printf("ltfen bir say girin\n");scanf("%d", &number);for(k = 1; k main ( ) { int number , k , total = 0 ; printf ("ltfen bir say girin\n ) ; scanf ( "%d , & number ) ; for ( k = 1 ; k

  • 8/3/2019 C programlama ders 3

    12/30

    Anahtar szckler:include int for return

    simlendirilenler:main k toplam printf scanf

    leler:

    =

  • 8/3/2019 C programlama ders 3

    13/30

    NesneBellekte yer kaplayan ve ieriklerine eriilebilen alanlara nesne (object) denir. Bir

    ifadeninnesne olabilmesi iin bellekte bir yer belirtmesi gerekir. Programlamadillerinde nesnelereisimleri kullanarak eriilebilir.a = b + k;rneinde a, b ve k birer nesnedir. Bu ifadede a nesnesine, b ve k nesnelerineaitdeerlerin toplam atanr.sonuc = 100;

    sonuc isimli nesneye 100 deimez deeri atanr.Nesnenin tr (type) derleyiciye o nesnenin nasl yorumlanaca hakknda bilgiverir. Birnesnenin tr onun bellekteki uzunluu hakknda da bilgi verir. Hertrn bellekte ne kadar uzunlukta bir yer kaplad programlama dillerindenceden belirtilmitir. Bir nesnenin tr, ayrca o nesne zerinde hangi ilemlerinyaplabilecei bilgisini de verir. Tr, nesnenin ayrlmaz bir zelliidir. Trsz bir

    nesne kavram sz konusu deildir.Trler ikiye ayrlabilir:1.nceden tanmlanm veri trleri2. Programc tarafndan tanmlanan veri trleri

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    14/30

    1. nceden tanmlanm veri trlerinceden tanmlanm veri trleri (default types - built-in types, primitive types)programlama dilinin tasarmnda var olan veri trleridir. rnein C dilindenceden tanmlanm 11 ayr veri tr vardr.2. Programc tarafndan tanmlanan veri trleriProgramc tarafndan tanmlanan veri trleri (user defined types) programcnnyaratt trlerdir. Programlama dillerinin ounda nceden tanmlanm trlerin

    yannda, programcnn yeni bir tr oluturmasn salayan aralar vardr. rneinbaz programlama dillerinde Boolean isimli -mantksal doru ya da yanldeerlerini alan- birtr vardr. Ama C89 dilinde byle bir tr dorudantanmlanmamtr.fadeDeiken, ile ve deimezlerin bileimlerine ifade (expression) denir.

    a + b / 2c * 2, d = h + 34var1geerli ifadelerdir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    15/30

    Sol Taraf DeeriNesne gsteren ifadelere "sol taraf deeri" (left value - L value) denir. Birifadenin sol taraf deeri olabilmesi iin mutlaka bir nesne gstermesi gerekir. Birifadenin sol taraf deeri olarak isimlendirilmesinin nedeni o ifadenin atamailecinin sol tarafna getirilebilmesidir.rnein a ve b nesneleri tek bana sol taraf deerleridir. nk bu ifadeleratamailecinin sol tarafna getirilebilirler. rnein :a = 17ya da

    b = c * 2denilebilir. Ama a + b bir sol taraf deeri deildir. nka + b = 25denilemez. Deikenler, her zaman sol taraf deeridirler. Deimezler, sol tarafdeeri olamazlar.Sa Taraf Deeri:

    Daha az kullanlan bir terimdir. Nesne gstermeyen ifadelersa taraf deeri(right value) olarak isimlendirilirler. Tipik olarak, atama ilecinin sol tarafndabulunamayan yalnzca sa tarafnda bulunabilen ifadelerdir. Deimezler herzaman sa taraf deeri olutururlar.Bir ifade sol taraf deeri deilse sa taraf deeridir. Sa taraf deeri ise sol tarafdeerideildir. Her ikisi birden olamaz.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    16/30

    Deimez fadelerYalnzca deimezlerden oluan bir ifadeye "deimez ifade" (constant

    expression) denir. Bir deimez ifadede deikenler ya da ilev arlar yeralamaz:103.510 + 20ifadeleri deimez ifadelerdir.

    DeyimC dilinin cmlelerine deyim (statement) denir. C dilinde deyimler ";" ilesonlandrlr.result = number1 * number2bir ifadedir. Ancak

    result = number1 * number2;bir deyimdir. Bu deyim derleyicinin, number1 ve number2 deikenlerindeerlerinin arplarak, elde edilen deerin result deikenine atanmasnsalayacak ekilde kodretmesine neden olur.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    17/30

    BR C PROGRAMI OLUTURMAKC dilinde yazlan bir programn altrlabilir hale getirilebilmesi iin, ounluklaaadaki srelerden geilir:1. Kaynak dosyann oluturulmasKaynak dosya, metin dzenleyici bir programda (text editr) yazlr. Kaynakdosya birmetin dosyasdr. C dilinin kurallarna gre yazlan dosyalarn uzants,geleneksel olarak ".c" seilir.

    2. Kaynak dosyann derleyici program (compiler) tarafndan derlenmesi:Bir programlama dilinde yazlm program baka bir programlama diline evirenprogramlara "evirici" (translator) denir. Dntrlmek istenen programnyazld dile "kaynak dil" (source language), dnmn yapld dile ise "hedefdil" (target language) denir. Hedef dil, makine dili ya da simgesel makine dili ise,byle evirici programlara "derleyici" (compiler) denir.

    Derleyici program kaynak dosyay alr, eviri ileminde eer baarl olursa bukaynak dosyadan bir "ama dosya" (object file) retir.Derleyici programn derleme ilemini yapma srecine "derleme zaman "(compile time) denir. Derleme ilemi baarszlk ile de sonulanabilir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    18/30

    Bir derleyici program, kaynak metni makine diline evirme abasnda, kaynakmetnin C dilinin szdizim kurallarna uygunluunu da denetler.Kaynak metinde dilin kurallarnn inendii durumlarda, derleyici program bu

    durumu bildiren bir ileti (diagnostic message) vermek zorundadr. Derleyiciprogramn verdiiileti:i) Bir "hata iletisi" (error message) olabilir. Bu durumda, derleyici programlarounlukla ama dosya retmeyi reddeder.ii) Bir uyar iletisi olabilir (warning message). Bu durumda, derleyici programlarounlukla ama dosyay retir.

    Unix/Linux sistemlerinde oluturulan ama dosyalarn uzants ".o" dur. DOS veWindowssistemlerinde ama dosyalar ".obj" uzantsn alr.Derleyici programlar daha kolay ynetmek iin, IDE (integrated developmentenvironment) denilen gelitirme ortamlar kullanlabilir. IDE derleyici demek deil,derleyiciyi altran ve program yazmay kolaylatran gelitirme ortamlardr.rnein MinGW ve DevC++ derleyici deil, IDE programlardr. Bu programlargcc derleyicisinikullanmaktadr.3. Daha nce elde edilmi ama dosyalar "balayc" (linker) program tarafndanbirletirilerek altrlabilir bir dosya elde edilir. UNIX sistemlerinde genelliklealtrlabilir dosyann uzants olmaz. Windows sistemlerinde altrlabilirdosyalarn uzants ".exe" olarak seilir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    19/30

    VER TRLERNesnelerin en nemli zelliklerinden biri, nesnenin trdr. Tr (type), nesneninolmazsaolmaz bir zelliidir. Tr olmayan bir nesneden sz etmek mmkndeildir. Derleyiciler nesnelerle ve verilerle ilgili kod retirken, tr bilgisindenfaydalanr. Derleyiciler nesnenin tr bilgisinden, sz konusu veriyi bellekte neekilde tutacaklarn, verinin deerini elde etmek iin veri alanndaki 1 ve 0 larnasl yorumlayacaklarn, veriyi hangi ilemlere sokabileceklerini renir.Programlama dilleri asndan baktmz zaman trleri iki ayr gruba ayrabiliriz.

    1. nceden Tanmlanm TrlerProgramlama dilinin tasarmndan kaynaklanan ve dilin kurallarna gre varlgvence altna alnm olan trlerdir. Her programlama dili programcnndorudan kullanabilecei, eitli zelliklere sahip veri trleri tanmlar. C dilindede nceden tanmlanm 11 tane veri tr vardr.2. Programcnn Tanmlanm Olduu Trler

    Programlama dillerinin ou, nceden tanmlanm veri trlerine ek olarak,programcnn da yeni trler tanmlanmasna izin verir. Programcnntanmlayaca bir nesne iin nceden tanmlanm veri trleri yetersiz kalrsa,programc dilin belli szdizim (sentaks) kurallarna uyarak kendi veri trnyaratabilir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    20/30

    C dilinin nceden tanmlanm 11 veri tr vardr. Bu veri trlerinden 8 tanesitamsay trnden verileri tutmak iin, kalan 3 tanesi ise gerek say trndenverileri tutmak iin tasarlanmtr. Biz bu trlere srasyla "tamsay veri trleri"

    (integer types) ve "gerek say veri trleri" (floating types) diyeceiz.Tamsay Veri TrleriC dilinin toplam 4 ayr tamsay veri tr (integer types) vardr. Ancak her birininkendiiinde iaretli (signed) ve iaretsiz (unsigned) biimi olduundan toplamtamsay tr 8kabul edilir.aretli (signed) tamsay trlerinde pozitif ve negatif tam say deerleri

    tutulabilirken, iaretsiz (unsigned) veri trlerinde negatif tamsay deerleritutulamaz.aretli karakter tr:Bu veri trne ksaca signed char tr denir.phesiz char szc ingilizce "character" szcnden ksaltlmtr, Trke"karakteranlamna gelir. Ancak bu trn ismi C'nin anahtar szckleri olansigned ve charszckleri ile zdeleip, "signed char" olarak sylenir. aretlichar trnden birnesnenin 1 byte'lk bir alanda tutulmas C standartlarncagvence altna alnmtr.1 byte'lk bir alan iaretli olarak kullanldnda bu alanda saklanabilecekdeerler-128 / 127 deerleri arasnda olabilir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    21/30

    aretsiz karakter tr:aretsiz char trnn iaretli olandan fark 1 byte'lk alann iaretsiz olarak, yaniyalnzca 0 ve pozitif saylarn ifadesi iin kullanlmasdr. Bu durumda iaretsizchartrnde 0 -255 arasndaki tamsay deerleri tutulabilir.aretli ve iaretsiz ksa tamsay veri trshort ve int szckleri C dilinin anahtar szcklerinden olduu iin bu tregenellikle short int ya da ksaca short tr denir.aretli veya iaretsiz short trnden bir nesne tanmland zaman, nesnenin

    bellekteka byte yer kaplayaca sistemden sisteme deiebilir. Sistemlerinounda, short intveri trnden yaratlan nesne bellekte 2 byte'lk bir yer kaplar.aretli short int trnden bir nesne -32768 -+32767 aralndaki tamsaydeerlerini tutabilirken, iaretsiz shorttrnde tutulabilecek deerler0 - 65535aralnda olabilir.aretli ve iaretsiz tamsay tr

    Bu tre ksaca int tr denir. aretli ve iaretsiz int trnden bir nesnetanmland zaman, nesnenin bellekte ka byte yer kaplayaca sistemdensisteme deiebilir. ounlukla 16 bitlik sistemlerde, inttrnden veri 2 byte, 32bitlik sistemlerde ise int trnden veri tr 4 byte yer kaplar. 16 bitlik sistemdemekle ilemcinin yazma (register) uzunluunun 16 bit olduu anlatlr.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    22/30

    aretli ve iaretsiz uzun tamsay veri trlong ve int szckleri C dilinin anahtar szcklerinden olduu iin bu tre genellikle longintya da ksaca long tr denir.aretli veya iaretsiz long trnden bir nesne tanmland zaman, nesnenin bellekte ka

    byte yer kaplayaca sistemden sisteme deiebilir. Sistemlerin ounda, long int veritrnden yaratlan nesne bellekte 4 byte'lk bir yer kaplar. aretli long int trnden birnesne -2147483648-+2147483648 aralndaki tamsay deerlerini tutabilirken, iaretsizlong trnde tutulabilecek deerler 0 +4.294.967.295 aralnda olabilir.Gerek Say TrleriC dilinde gerek say deerlerini tutabilmek iin 3 ayr veri tr tanmlanmtr. Bunlar

    srasyla, float, double ve long double veri trleridir. Gerek say veri trlerinin hepsiiaretlidir. Yani gerek say veri trleri iinde hem pozitif hem de negatif deerler tutulabilir.Gerek saylarn bellekte tutulmas sistemden sisteme deiebilen zellikler ierebilir.Ancak sistemlerin ounda IEEE 754 sayl standarda uyulur. Sistemlerin hemen hepsindefloat veri trnden bir nesne tanmland zaman bellekte 4 byte yer kaplar. 4 byte lk yani32 bitlik alana zel bir kodlama yaplarak gerek say deeri tutulur. IEEE 754 saylstandartta 4 byte lk gerek say format "single precision (tek duyarlk) olarak

    isimlendirilirken, 8 byte lk gerek say format "double precision (ift duyarlk) olarakisimlendirilmitir.Sistemlerin hemen hepsinde double veri trnden bir nesne tanmland zaman bellekte8 byte yer kaplar.long double veri trnn uzunluu sistemden sisteme deiiklik gsterir. Bu tr,sistemlerin ounda 8, 10, 12 byte uzunluundadr.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    23/30

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    24/30

    stanbul niversitesiElektrik Elektronik Mhendislii

    Yukarda verilen tablo, sistemlerin ou iin geerli de olsaANSI C standartlarna greyalnzca aadaki zellikler gvence altna alnmtr:

    char tr 1 byte uzunluunda olmak zorundadr.short veri trnn uzunluu int trnn uzunluuna eit ya da int tr uzunluundan kkolmaldr.long veri trnn uzunluu int trne eit ya da int trnden byk olmak zorundadr.Yanishort

  • 8/3/2019 C programlama ders 3

    25/30

    C dilinin en ok kullanlan veri trleri tamsaylar iin int tryken, gerek saylariin double veri trdr. Peki hangi durumlarda hangi veri trn kullanmakgerekir? Bununiin hazr bir reete vermek pek mmkn deil, zirakullanacamz bir nesne iin tr seerken birok etken sz konusu olabilir. Amagenel olarak u bilgiler verilebilir:

    Gerek saylarla yaplan ilemler tam saylarla yaplan ilemlere gre ok dahayavatr. Bunun nedeni phesiz gerek saylarn zel bir ekilde belirli birbytealanna kodlanmasdr. Tamsaylarn kullanlmasnn yeterli olduu durumlardabir gerek say trnn kullanlmas, alan programn belirli ldeyavalamas anlamna gelir. Bir tamsay trnn yeterli olmas durumundagerek say trnn kullanlmas programn okunabilirliinin de azalmasna

    neden olur.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    26/30

    BLDRM ve TANIMLAMABildirim Nedir?Bir kaynak dosya iinde yazlan geerli C deyimlerinin bir ksm, bir ilemyaplmasna ynelik deil, derleyiciye derleme zamannda kullanaca bir bilgi

    vermeye yneliktir. Byle deyimlere bildirim (declaration) deyimi denir. Derleyicigeerli bir bildirim deyiminin stnden getiinde bir bilgi alr ve ald bu bilgiyi yinederleme zamannda kullanr.Tanmlama Nedir?Ancak baz bildirim deyimleri vardr ki, derleyici bu deyimlerden ald bilgisonucunda, bellekte bir yer ayrr. Tanmlama (definition), derleyicinin bellekte yer

    ayrmasn salayan bildirim deyimleridir.Deikenlerin TanmlanmasC dilinde bir deiken derleyiciye tantlmadan kullanlamaz. Derleyicinin sz konusudeiken iin bellekte bir yer ayrmasn salamak iin, uygun bir szdizimi ile,deikenin ismi ve tr derleyiciye bildirilir. Bildirim ilemi yoluyla, derleyicilerdeikenlerin hangi zelliklere sahip olduklarn anlar. Bylece bu deikenler iinprogramn alma zamanna ynelik olarak bellekte uygun bir yer ayrma ilemiyapabilir. C dilinde bir deikeni bildirimini yapmadan nce kullanmak geersizdir,derlemeileminde hata (error) oluumuna yol aar.Bir deikenin derleyiciye tantlmas, deikenin trnn ve isminin derleyiciyebildirilmesidir. Derleyici bu bilgiye dayanarak deiken iin bellekte ne kadar yerayracan, deikenin iin ayrlan byte'lardaki 1 ve 0 larn nasl yorumlanacabilgisinielde eder.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    27/30

    Deiken Tanmlama leminin Genel BiimiC'de bildirim ilemi aadaki ekilde yaplr : Tanmlamann bir noktal virglle sonlandrldn gryorsunuz. Nasl normal

    dilde, nokta cmleleri sonlandryorsa, C dilinde de noktal virgl atomu, C dilinincmleleri olan deyimleri sonlandrr. "Noktal virgl" atomu C dilinin cmlelerininnoktasdr. Bundan sonra noktal virgl atomuna "sonlandrc atom" (terminator)diyeceiz. Noktal virglayra trnden bir atomdur. C'de deyimler, ounluklabu ayra ile birbirlerinden ayrlr.a = x + 1; b = x + 2;

    ifadelerinde bulunan noktal virgller bunlarn ayr birer deyim olduklarngsterir. Eer bir tek noktal virgl olsayd derleyici iki ifadeyi tek bir ifade gibiyorumlard.a = x + 1 b = x + 2;Yukardaki ifade tek bir ifade gibi yorumlanr ve derleyici buna geerli bir anlamveremez.

    Tr belirten anahtar szckler, C dilinin nceden tanmlanm veri trlerine ilikinanahtarszcklerdir. Bu szcklerin kullanlmasyla, tanmlanacakdeikenlerin, 11 temel veritrnden hangisine ait olduu bildirilir. C dilininnceden tanmlanm veri trlerine ilikin, bildirim ileminde kullanlabilecekanahtar szckler unlardr:signed, unsigned, char, short, int, long, float, double

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    28/30

    Bu szcklerin hepsi anahtar szck olduundan kk harf ile yazlmaldr, Cdilininbyk harf kk harf duyarl (case sensitive) bir dil olduunu hatrlayalm.C dilinin tm anahtar szckleri kk harf ile tanmlanmtr.Tr belirten anahtar szckler aadaki izelgede listelenen seeneklerden biriolmaldr. Keli ayra iindeki ifadeler kullanlmas zorunlu olmayan, yaniseime bal olan anahtar szckleri gsteriyor. Ayn satrdaki tr belirtenanahtar szckler tamamen ayn anlamda kullanlabilir:

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    29/30

    Yukardaki tablodan da grld gibi, belirli trleri birden fazla ekilde ifadeetmek mmkndr.

    Bildirim szdiziminde, deiken ismi olarak, C dilinin isimlendirme kurallarnauygunolarak seilen herhangi bir isim kullanlabilir.

    stanbul niversitesiElektrik Elektronik Mhendislii

  • 8/3/2019 C programlama ders 3

    30/30

    TO BE CONTINUED...