![]() |
|
Sabit Tanımlama - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: Sabit Tanımlama (/showthread.php?tid=221) |
Sabit Tanımlama - Fesih ARSLAN - 21-09-2016 Merhaba, Bildiğiniz gibi Delphi/Object Pascal ile sabit tanımlamalar iki farklı yöntemle doğrudan yapılabilmektedir. Bunlar const ve resourcestring'dir. String tipinde bir sabit tanımlamada Const & resourcestring direktiflerinden hangisi kullanılmalıdır? Neden? Örneğin; resourcestring strProjeAdıTR = 'Yeni Nesil Delphi Teknolojileri'; strProjeAdıEn = 'New Generation Delphi Technologies'; const strProjeAdıTR: String = 'Yeni Nesil Delphi Teknolojileri'; strProjeAdıEn: String = 'New Generation Delphi Technologies'; Tam bir sınav sorusu gibi. İlerleyen süreçte böyle bir soru bankası da oluştursak iyi olur. Sabit Tanımlama - yhackup - 21-09-2016 Bildiğim Kadarı ile, const, Karakter başına 1 byte resourcestring Karakter başına 2 byte alan kaplıyor, eğer veriye sık sık ulaşman gerekecek ise resourcestring kullanmalıyız (uzun zaman önce okumuştum buna yönelik bir yazı önbelleğe alma mekanizması ile ilgili bazı farkları vardı consttan) Cvp: Sabit Tanımlama - Fesih ARSLAN - 21-09-2016 Merhaba, Aslında bellekte kapladığı miktarı belirleyen direktif değil, sahip olduğu veri tipidir. Cvp: Sabit Tanımlama - yhackup - 21-09-2016 Alıntı:In Delphi versions up to D2007, const strings were stored as Ansi strings, requiring a single byte per character, whereas resource strings would be stored in UTF-16: the windows default encoding (though perhaps not for Win9x). IIRC D2007 and prior versions didn't support UTF-8 encoded unit files. So any strings coded in your sources would have to be supported by the ANSI code pages, and as such probably didn't go beyond the Unicode Basic Multilingual Plane. Which means that only the UCS-2 part of UTF-16 would be used and all strings could be stored in two bytes per character. Böyle bir şey buldum. Sabit Tanımlama - engerex - 21-09-2016 Kendisini yeni farkediyorum. const ile farklı tipler tanımlanabiliyor. resourcestring ise sadece string veri tipi tanımlanıyor. Burada kolaylık ve hız sağlanmak istenmiş gibi. Hmm sanırım değişkeninize resources veri atama yaptığınızda atamıyor bellekteki adresine gidiyor. Cvp: Sabit Tanımlama - Fesih ARSLAN - 21-09-2016 (21-09-2016, Saat: 11:07)engerex Adlı Kullanıcıdan Alıntı: Kendisini yeni farkediyorum. Yani hangisi daha hızlı? Sabit Tanımlama - engerex - 21-09-2016 resourcestring hızlıdır. (Belki de ikiside aynı şekilde veriye erişiyor.) Birde isminden resourcestring verinin derleme esnasında EXEnin resource kısmına atıldığı izlenimi veriyor. Sabit Tanımlama - esistem - 21-09-2016 Selam, alttaki yazıyı buldum konu ilgili, http://docwiki.embarcadero.com/RADStudio/XE8/en/Resource_Strings benim anladığım; delphi tarafından bu kod oluşturulursa C++ ile buna erişebiliyorsunuz, ing. iyi olan bi arkadaş çevirirse daha iyi olur. Sabit Tanımlama - Kostebech - 27-09-2016 Testlere göre const daha hızlı olduğu bildiriliyor. http://stackoverflow.com/questions/5349510/resourcestring-vs-const-for-string-literals |