Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

#pragma nedir??

Başlatan serdararikan, 25 Eylül 2010, 22:28:53

serdararikan

    #pragma udata dataBuffer

bu komut satırı ne anlama geliyor??

F493

Alıntı yapılan: serdararikan - 25 Eylül 2010, 22:28:53
    #pragma udata dataBuffer

bu komut satırı ne anlama geliyor??


Selam,

    Pragma derleyiciye özel bir "Ön işlemci" komutudur.
    udata -> uninitialized -> Başlatılmamış yani ilk deger verilmemiş demektir.
Siz dataBuffer adında bir değişken tanımlamışsınız ve buna ilk deger vermediğinizi derleyiciye bildiryorsunuz. Yani derleyici kodu ilkdeğer verilmemiş alanda başlatır.

Ancak siz bu satırdan sonra  ilk deger verirseniz bu idata yani initialized (Başlatılmış, ilk deger verilmiş) alanda başlatır. Bu işlemler genelde linker dosyasında ayrılan alanlar için derleyiciye bilgi amaçlı yazılır.

Bu ifade şu şekilde olsa daha anlaşılır olur ;     #pragma udata dataBuffer[1024]
dataBuffer adında işlemcide 1024 byte'lık  alanı lineer olarak tahsis ettik.

Esen kalın.

Analyzer

Selam,

pragma C dilinde compiler'a direktif vermeye yarayan bir ayrılmış kelimedir. Programlama esnasında genellikle global değişkenleri değiştirmede, compiler'ı yönlendirmede kullanılır.

Analyzer
Üşeniyorum, öyleyse yarın!

serdararikan

cevap için teşekkürler.

papylon

Peki konu açılmışken bende şunu sorayım,
incelediğim bir kütüphanenin header dosyasında aşağıda ki gibi ifadeler var bunların içerisinde geçen class ve public: nedir ne işe yarar?
Burada bir sürü fonksiyon tanımlamaları vardı, ben sadece içindeki iki fonksiyonu yazdım..
class LCD
{
public:
    static void Init();
    static ushort   GetWidth();
};

muhittin_kaplan

Hocam Bu Kütüphane nedir bilmiyorum ama
Class Genelde Pc programlamada kullanılan bir bildiridir yada nesnedir dersek daha doğru olur. OOP programlamanın olmazsa olmazıdır. siz bir class yazarsınız (aslında bu altında fonksiyonlar olan bir dosyadır) ve bu class dosyasını import (include) ederek kendi projenizde kullanabilirsiniz.
Public,Private gibi başlangıçlar ise  Class ın altnda yazılan bu fonksionların hayat alanını belirler. nasılki C de fonksiyonun altında tanımlanan değişkenler sadece o fonksiyonun altında yaşıyorsa public private gibi başlangıçlarla fonksiyonlara "ULAŞABİLECEĞİNİZ" yerleri belirlersiniz.

F493

Alıntı yapılan: papylon - 25 Eylül 2010, 23:55:44
Peki konu açılmışken bende şunu sorayım,
incelediğim bir kütüphanenin header dosyasında aşağıda ki gibi ifadeler var bunların içerisinde geçen class ve public: nedir ne işe yarar?
Burada bir sürü fonksiyon tanımlamaları vardı, ben sadece içindeki iki fonksiyonu yazdım..
class LCD
{
public:
    static void Init();
    static ushort   GetWidth();
};


Selam,

   Bu kodu aldığınız platform C++'da işlemciye kod yazmaya destek veriyor sanırım. Bu Object-oriented programming ile ilgili bir kod. Yani daha çok Class kavramı ve  encapsulation kavramını içerir. Bunu C'de bir handle gibide düşünebilirsiniz. Nasıl bir struct veya union türünden bir değişken ile bunların içindeki tüm elemanlara ulaşabiliyorsunuz. Birde function Pointer tanımlarsan daha kapsamlı olur. Ancak  Object-oriented programming  de bir engine(motor, kernel) yazarsınız ve onu türetirsiniz, içindeki bazı fonksiyon, değişkenleri public, static, private gibi tiplerde tanımlayıp kullanıcıyı soyutlayabilirsiniz.
Örnegin;

class LCD {
public int PutPixel();
private int sendLcd();
};
Lcd mylcd;

Burada kullanıcı aslında mylcd.PutPixel(...)'e ulaşabilir, SendLcd'ye ulaşamaz nedeni SendLcd alt seviyeli yani driver kısmını ilgilendiren bir fonksiyon. SendLcd'yi PutPixel fonksiyonu kendi içinde çagırır........vb...
Bu güzel bir mekanızma daha neler var neler virtual mekanızması, STL...
Bu yapı büyük projeler için kesinlikle gerekir. Yoksa işin içinden çıkılması zorlaşır.

Mesela IAR compiler ARM, DSP ve vb.. işlemciler için C++ destegi veriyor.

Esen kalın.
}

papylon

Açıklamalarınız için hepinize teşekkür ederim, fakat biraz moralim bozuldu, yaptığınız açıklamalardan daha çok yol kat etmem gerektiğini anlayabildim sadece.  ???

İncelediğim program da, daha önce tartışılan 12MHz ile ATmega'nın yapabildiklerine bakın başlıklı konuya ilişkin programdı.

Program kodlarını incelemek isterseniz linki aşağıda...

http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations