September 09, 2009

Başlıkta yazdığım gibi pragma ne işe yarıyor ve nasıl kullanılıyor ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 10, 2009

pragma, C'de ve C++'da da #pragma adıyla vardır. Derleyicilere özel komutlar vermek için kullanılırlar. Her derleyici farklı olanaklar getirebileceği için, bir derleyicinin pragma'sı başkasına uymayabilir.

Her yerde aynı olan pragmalar da vardır: Örneğin '#pragma pack(16)', yapıların bellekte 16'nın katları olan adreslere yerleştirilmelerini söyler. Bu, bütün derleyiciler tarafından kabul edilmiş derecede standartlaşmıştır.

pragma kavramı D'de de aynı... Ama derleyiciye bağlı olduğu için, dille ilgisi olduğunu söyleyemeyiz. Şu sayfada görüldüğü gibi, dmd'nin de pragma'ları varmış:

http://digitalmars.com/d/2.0/pragma.html

Örneğin derleme sırasında mesaj vermek için, D'nin süper olanaklarından olan ve derleme zamanında kararlar vermeye yarayan 'static if''i de kullanan bir örnek:

static if (int.sizeof != 7)
{
pragma(msg,
"UYARI: Bu program int'in 7 bayt olduğunu varsaydığı için bu derleyiciyle doğru çalışmayacaktır!");
}

void main()
{}

pragma çok özel durumlarda ve çoook nadir kullanılır... :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]