PDA

Tam Sürümünü Görmek İçin : Bazi C Konulari Hakkinda


Akın Öcal
17/02/2005, 05:30
Ben daha yolun basinda olan bir acemiyim. Kaan Arslan'ın A'dan Z'ye C Klavuzu adlı kitabını yeni bitirdim. Genel olarak C yi oğrendigimi (baslangıc seviyesi icin) söyleyebilirim. Fakat gene de bazı noktalar hakkında goruslerinizi almak istiyorum.

1)Bit operatorleri ve bit alanları ile ilgili islemlerin uygulama alanları nelerdir ? (Anladıgım kadarıyla daha cok donanıma yonelik programlama da ise yarar gozukuyor)

2) Near,far,huge pointerlar gunumuzde kullanılıyor mu ?

3) Hangi durumlara malloc fonksiyonu yerine calloc tercih edilmelidir ?

4)Union lar anladıgım kadarıyla bellek ihtiyacını azaltmak için kullanılıyor fakat ne tip uygulamalarda unionlara rastlanabilir ?

5)Windows XP nin yanında Mandrake Linux 10.1 kullanıyorum.
Linux altında gcc ve cc yerine komut satirindan calistirilmayan mesela dev derleyicisi gorsel bir derleyici onerirseniz sevinirim.

6)Kendimi c de ve programlamada gelistirmek icin bir "Veriyapıları ve Algoritma" kitabını calısmaktayım. Ayrıca sırayla www.csystem.org daki çalısma soruları ve ornek kodlara da çalısmaktayım. Bunlara ek olarak kendimi gelistirmem için tavsiyelerinizi bekliyorum.

Saygılarla...


fuzbing
17/02/2005, 12:44
kaan arslan ın kitabı genelde öğrencilere yönelik ve çok ayrıntılı yani oradaki çoğu şey c++ la geçerliliğini yitirdi ama c öğreniyorsan ve kusursuz olmak istiyorsan ordaki herşeyi öğrenmelisin.Bundan sonrası algoritma geliştirme ve pratiktir.

Euclides
17/02/2005, 14:19
1)Bit operatorleri ve bit alanları ile ilgili islemlerin uygulama alanları nelerdir ?

2 kod arasındaki fark nedir ?
x=(t mod 8);
x=(t >> 3);
2. kod 1.'sinden kat kat daha hızlıdır.. Optimize edilmiştir.

2) Near,far,huge pointerlar gunumuzde kullanılıyor mu ?

Evt,kullanılıyor.(huge=? bu hafıza modeli diye biliyorum)
Near ve far call'ar var.
Mesela sizin programınız sizin driver'ınz ile gizli gizli far call'lar ile haberleşebilir.

4)Union lar anladıgım kadarıyla bellek ihtiyacını azaltmak için kullanılıyor fakat ne tip uygulamalarda unionlara rastlanabilir ?

union=*geyik*
2 değişken var 2'sinde aynı pointeri gösteriyor...
işte union...

ceeyt
17/02/2005, 15:41
3) Hangi durumlara malloc fonksiyonu yerine calloc tercih edilmelidir ?

temel olarak bir kac fark var;
- malloc( ), 'byte' olarak belirttigin kadar bellek ayirir, tek arguman alir.
calloc( ), tek bir degiskeninin boyutu cinsinden olmak uzere belirttigin sayida
degisken icin yer ayirir.

- malloc ile ayirdigin bellek bolumune ilk degerleme yapilmaz, calloc ile ayirdigin bellek alaninda ise yapilir. calloc ile ayridigin alandaki degerler 0 olarak ilk degerlenir.


1)Bit operatorleri ve bit alanları ile ilgili islemlerin uygulama alanları nelerdir ? (Anladıgım kadarıyla daha cok donanıma yonelik programlama da ise yarar gozukuyor)

Bir operatorleri cok yaygin kullanilmasalar da bazi ozel uygulamalarda oldukca ise yariyor.Belki dedigin gibi daha cok, bilgisayarla disarida bir seyleri kontrol edeceksen ise yariyor gibi.

Bit alanlarini simdiye kadar hic kullanmadim, kullananlar vardir,onlarin goruslerini beklemek lazim. Ozellikle bir kisisel bilgisayar icin, sagladiklari bellek tasarrufu pek mantikli gelmiyor ve kodun tasinabilirligini kotu yonde etkiler.



6)Kendimi c de ve programlamada gelistirmek icin bir "Veriyapıları ve Algoritma" kitabını calısmaktayım. Ayrıca sırayla www.csystem.org daki çalısma soruları ve ornek kodlara da çalısmaktayım. Bunlara ek olarak kendimi gelistirmem için tavsiyelerinizi bekliyorum.

veri yapilari ve algoritmalar calisman guzel, calistigin C kitabi da guzel bir kitap.

Gelismek icin en guzeli cok kod yazip, cok okumak. Bir de ceviz.net e takilmak :)

veri yapilariyla ilgili olarak sunu soyleyeyim ; calisma mantiklarini,yapilarini ogrendikten sonra C++ standirdinda olan STL i iyi ogren,gercekten cok ise yariyor. Buna veri yapilari ve algoritmalarin guzel bir uygulamasi olarak bakabilirsin. Hem de adi ustunde standart yani heryerde calisir.


kolay gelsin...