Tam Sürümünü Görmek İçin : #pragma
ankakusu
27/06/2008, 13:44
Merhabalar,
#pragma ne demek oluyor?
Bir bilgisi olan var mı acaba?
quasimodo
27/06/2008, 17:05
Islemcinin uygulama bagimsiz bir eylem gerceklestirmesini saglar.
acehreli
27/06/2008, 18:44
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
ankakusu
30/06/2008, 11:19
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
$pragme do_not_instantiate dediğim zaman zaten derleyici otomatik olarak beni anlıyor.
Ali sen de microsoftta
#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/education/courses/ws2003/intropar/origin-new/Pragmas/sgi_html/ch03.html
acehreli
30/06/2008, 21:47
#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
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.