Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

#pragma

Konu, 'C / C++' kısmında ankakusu tarafından paylaşıldı.

  1. ankakusu

    ankakusu Üye

    Kayıt:
    19 Aralık 2006
    Mesajlar:
    176
    Beğenilen Mesajlar:
    0
    Merhabalar,

    #pragma ne demek oluyor?
    Bir bilgisi olan var mı acaba?
     
  2. quasimodo

    quasimodo Daimi Üye

    Kayıt:
    8 Ekim 2006
    Mesajlar:
    737
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci
    Şehir:
    İstanbul
    Islemcinin uygulama bagimsiz bir eylem gerceklestirmesini saglar.
     
  3. acehreli

    acehreli Ali Çehreli

    Kayıt:
    19 Ekim 2002
    Mesajlar:
    4,973
    Beğenilen Mesajlar:
    2
    Bazi olanaklar yalnizca belirli bir ortama ozel olduklari veya hatta henuz dusunulmemis bile olabildikleri icin dilin taniminda icerilemezler.

    #pragma, derleyicilere bu tur olanaklarla ilgili bir cikis kapisi sunar. Derleyicinin, kendisine veya calistigi ortama ozel bazi olanaklar hakkinda programcidan bilgi almasini saglar.

    Bir ornek olarak, Microsoft'un '#pragma once'i, baslik dosyalarinin bir derleme biriminde yalnizca bir kere acilmalarini saglar:

    #pragma once

    O satiri iceren baslik dosyasi kac kere "#include edilmis" olmasindan bagimsiz olarak bir kere acilir.

    Ali
     
  4. ankakusu

    ankakusu Üye

    Kayıt:
    19 Aralık 2006
    Mesajlar:
    176
    Beğenilen Mesajlar:
    0
    Merhabalar,

    Quasimodo ve Ali teşekkür ederim.

    Bir kaç sorum daha olacaktı :) Ben #pragma konusunu anlatan bi websitesi buldum ve pragmanın oradaki kullanımlarına baktım. Şöyle bir tablo vardı. Tabloyu aşağıda veriyorum:

    Table 3-1. C++ Template Instantiation #pragma Directives
    #pragma
    Short Description
    Compiler Versions
    #pragma instantiate
    Causes a specified instance of a template declaration to be immediately instantiated at that spot.
    7.1 and later
    #pragma can_instantiate
    Indicates that the specified declaration can be instantiated in the current compilation, but need not be.
    7.0 and later
    #pragma do_not_instantiate
    Prevents instantiation of the specific declaration in this compilation unit, even if that instance is used in the code.
    7.0 and later


    Buradan çıkardığım kadarıyla
    Kod:
    $pragme do_not_instantiate 
    dediğim zaman zaten derleyici otomatik olarak beni anlıyor.

    Ali sen de microsoftta

    Kod:
    #pragma once 
    dediğimiz zaman otomatik olarak başlık dosyalarını otomatik olarak bir derleme biriminde yalnızca bi kere açması gerektiğini anlar diyorsun değil mi?

    yani bi şekilde bu "once" kelimesi onceden tanınıyor...

    Tabloyu aldığım websitesinin bağlantısını aşağıda verdim:

    http://www.risc.uni-linz.ac.at/educ...ntropar/origin-new/Pragmas/sgi_html/ch03.html
     
  5. acehreli

    acehreli Ali Çehreli

    Kayıt:
    19 Ekim 2002
    Mesajlar:
    4,973
    Beğenilen Mesajlar:
    2
    #pragma aslinda bir onislemci komutudur (preprocessor directive). Kodu derleyiciden once onislemci okur ve kendi isini halleder (makrolari acmak, #include satirlarinin yerine dosyayi almak, yorumlari silmek, vs.)

    #pragma'dan sonra gelen sozcukleri de onislemci tanir ve ne gerekiyorsa yapar. Ornegin do_not_instantiate icin derleyiciye ne yapmasi gerektigini o soyluyor olabilir.

    Ali
     
Benzer Konular
Yüklüyor...