Forum: Diğer Konular RSS
C++ değişken tür ve uzunlukları hakkında
cos00kun #1
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: C++ değişken tür ve uzunlukları hakkında
Merhabalar

diyelimki elimizde şöyl e bir bilgi var ve elimizde buna göre tasarlanıp yazılmış bir dosya var

Field                    Data Type                             Width (in bytes)
id                        unsigned 16-bit integer                         2
classInfo[]            byte[8]                                                8
collisionRadius     single-precision 32-bit floating point       4
hitpoints               Signed 32-bit integer                           4

ve bu yapınında daha önceden C++ ile yazılan bir dosyaya ait olduğunu biliyoruz..

Soru1) Bunları C++ dilinde hangi veri türlerine eşitleyebilirim ??
Soru 2) Ayrıca C++ de bildiğimiz veri türleri yanında INT16 ,  __16int,  INT16MAX  v.s.gibi sıklıkla rastladığım türler ve bunların yani altçizgili olanlar vesaire nedir nasıl kullanılır ?
E=mc^2
kerdemdemir #2
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Anladığım kadarıyla data binary, Bunları memcpy ile kendi veri yapına alabilirsin.

struct Erdem
{
     uint16 id;
     int8    classInfo;
     float   collisionRadius;
     int     hitpoints;
}

int8* data;//Datayı networkden veya dosyadan okuduğunu varsayıyorum.
Erdem e;
memcpy( &e, data, sizeof(Erdem));

Bu networking'de çok yapılan bir şeydir. Örneğin Ethernet protokolünün header'ı sabit uzunlukda ve içerdiği türler sabittir. "memcpy" ile network'den alınan data direk hafızada kullanıcının veri yapılarına kopyalanır.


Eğer bir değişken iki tane altçizgiye sahipse bu derleyicinin tanımladığı bir değişkendir çok derinlere indiysen kodu incelerken o zaman görmüşsündür. Tabi "__" isimli değişkenleride kullanıcıda verebilir ama hem okunulmaz hemde derleyicinin isimleri ile karışabilieceğinden tavsiye edilmez.

Diğer INT16,INT32, uint32 gibi değişkenler derleyiciler veya bazen kütüphaneler(veya kullandığın projede kullanıcı tarafından) tarafından tanımlanmış tür tanımlarıdır. Bunların sebebi int,double gibi değişkenlerin boyutunun sistemden sisteme değişme olasılığıdır. Fakat bir değişken INT16 olarak tanımlanmışsa onun boyutunun 16 bit olması bekleriz. Böylece bir ara katman eklenip değişken boyutları genellenmiş olur.

Saygılar
Erdem
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
C++11'den beri standart olarak uint16_t ve arkadaşları da var:

   http://en.cppreference.com/w/cpp/types/integer

Ali
cos00kun #4
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Öncelikle teşekkürler.. umarım D sitesinde fazlaca C++ konuşarak bilgi dağınıklığı yaratmıyorumdur..
Kerdemderim hocam peki burda yazdığımız tip uygunluğu sağlanıyorsa ve byte karşılığıda istenene denk ise her türlü tipi kullanabilirmiyiz ?
ben bile ne yazdığımı anlamadım o yüzden açıklamaya çalışayım; :)

örneğin;
hitpoints    Signed 32-bit integer    4 olan kısımda 4 bytlık işaretli integer işaret ediliyor bu durumda ben direk int türünü kullansrak dosyadan okuma yapsam bu bir sorun teşkil edecekmidir ?

Ali hocam inanırmısınız işten çıkıp eve gelmeden önce sizin verdiğiniz linki bulmuştum bende.. Ancak acemiliğimi maruz göreceğinizi umut ederek; aslında benim tam olarak öğrenmek istediğim şey hemen üst satırda yazdığım konu yani eğer dosyaya daha önceden  "Signed 32-bit integer" olarak kaydedilmiş bir veriyi ben normal "int" olarak okutacaksam işte bahsettiğim birdolu altçizgili değişik veri tiplerini kullanmama gerek kalırmı ? daha specifik örnek ise "__int16" yerine "short" olarak kullanabilirmiyim dir sonuçta ikisiylede işaretli ve 16 bit veri okunulabiliyor gibi..
dahada açıkçası https://pmc.editing.wiki/doku.php?id=falcon4:file_formats:…  burdaki yapıyı dosyadan C++ ile okutmak amacım

Değerli bilgilerinizle bayağı aydınlandım sağolun varolun..
E=mc^2
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
cos00kun:
umarım D sitesinde fazlaca C++ konuşarak bilgi dağınıklığı yaratmıyorumdur..

Hayır ama bazılarımız D'yi daha rahat bulduğumuzdan C++ ile zorlandığına üzülüyoruz. ;)

hitpoints    Signed 32-bit integer    4 olan kısımda 4 bytlık işaretli integer işaret ediliyor bu durumda ben direk int türünü kullansrak dosyadan okuma yapsam bu bir sorun teşkil edecekmidir ?

Pratikte bir şey olmaz ama teoride çok yanlış olur çünkü C ve C++ dilleri int'in kaç bitlik olduğunu belirlemez.

Ali
cos00kun #6
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
umarım D sitesinde fazlaca C++ konuşarak bilgi dağınıklığı yaratmıyorumdur..

acehreli:
Hayır ama bazılarımız D'yi daha rahat bulduğumuzdan C++ ile zorlandığına üzülüyoruz. ;)

Ali hocam az kaldı D diline gelmeme :)  geçen sene burada sizinle ilk taanıştığımızda yazmıştım öncelikle içimde ukte olarak kalan C++  dilini öğrenecektim ve açıkçası uzman olmasamda bayağı derinlere indim sayılır..
D dili ise aralarda bakıp uzak kalmamaya çalıştığım ve sizin sayenizde sevdiğim bir dil oldu.. Ancak hala çok yavaş gelişiyor bildiğim kadarıyla ve hala directX D diline tam olarak entegre olabilmiş değil.. işin birde benim için Arayüz kısmı varki D dilindeki durumu hakkında en ufak bir fikrim bile yok.. oysa texboxlar buttonlarlada en azından biraz oynayabilmeliyim..

Aslında bi ara D dili son günlerde nerelerde geziyor biraz bahsetseniz çok mutlu olacağım.. Ayrıca yeni (gerçi artık eskidi) işinizde D dilini kullanmanız sebebiyle geçen süreçte D dili hakkında olumlu ve olumsuz düşüncelerinizi paylaşırsanız buda çok sevindirici olacaktır..
sevgiler saygılar...
E=mc^2
erdem (Moderatör) #7
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
cos00kun:
işin birde benim için Arayüz kısmı varki D dilindeki durumu hakkında en ufak bir fikrim bile yok.. oysa texboxlar buttonlarlada en azından biraz oynayabilmeliyim..

Görsel programlar için Gtkd kütüphanesi var.

Gtkd ile merhaba dünyü
cos00kun #8
Üye Kas 2014 tarihinden beri · 109 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
erdem hocam konulara çokta uzak değilim burda yazılanları çok katılamasamda şimdilik uzaktan takip ediyorum..  Ancak benim sorunum ingilizceyle ilgili zira neredeyse D dili kütüphaneleri ile ilgili bırakın Türkçe kaynağı doğru dürüst ingilizce kaynaklara bile rastlanmıyor(en azından benim anlayabilme kriterlerim için) ... sizin yazınız olmasa Yotube videoları dahil 2 tane bile Gtkd ie ilgili video tutorial bulamassınız :)
E=mc^2
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #6
cos00kun:
D dili [...] hala çok yavaş gelişiyor bildiğim kadarıyla

Yeni kuralların eklenmesi yavaş oluyor. (Alıma gele yeni bir örnek, static foreach.) Ama başka konularda gelişim devam ediyor: standart kütüphane, hata giderme, vs.

hala directX D diline tam olarak entegre olabilmiş değil

O konuda bilgim yok ama örneğin şu proje Mayıs'ta güncellenmiş:

  https://code.dlang.org/packages/directx-d

Ama "olabilmiş" deyince öyle bir amacı varmış da ulaşamıyormuş gibi anlaşılıyor. DirectX bildiğim kadarıyla yalnızca Microsoft ortamı için. Öyle özel bir kütüphaneyi D standart olarak önemsemeyecektir ama üçüncü şahıslar (örneğin, sen ;) ) gerek duyuldukça geliştireceklerdir.

birde benim için Arayüz kısmı

gtkd'den başka web arayüzü olarak da vibe.d gibi kütüphaneler kullanılabilir. Doğrusu, bu tür ihtiyaçların standart kütüphane tarafından giderilmemiş olması güçlük oluşturuyor ama ne yapalım...

D dili son günlerde nerelerde geziyor biraz bahsetseniz çok mutlu olacağım

Fazla değişiklik yok. Çok kullanışlı bir dil olmaya ve kullananlara üstünlük sağlamaya devam ediyor. Bütünüyle D kullanan firmalar yanında bazı işlerini D'de yapanlar da var:

  https://dlang.org/orgs-using-d.html

D'yi bırakan firma duymadım. Örneğin, geçen ayki D meetup'ımızda bizi konuk eden AdRoll yıllardır data scienc konusunda D'den yararlanıyor; kendilerine sorduğumnda D'yi çok severek kullandıklarını söylediler. İşin ilginci, AdRoll'dan ayrılan Benoit Netflix'e geçmiş ve orada da D kullandırmaya başlamış. Geçenlerde de Netflix'in D kullanımı ile ilgili bir blogları yayınlanmıştı.

D dilini kullanmanız sebebiyle geçen süreçte D dili hakkında olumlu ve olumsuz düşüncelerinizi paylaşırsanız buda çok sevindirici olacaktır

Şu andaki işimde günlük olarak Go kullanıyorum ama D kodumuza da biraz karıştığım oluyor. D her düzeyde harika: üst düzeyde kolaylık, gerektiğinde alt düzeyde sihirbazlık, vs. Go ise bir iki hafta küfür ede ede kodladıktan sonra beklentilerini azaltmayı öğrenerek mutlu olduğun bir dil. Yukarıda da değindiğim kütüphane konusunda Go'nun durumu çok daha iyi. Örneğin, herkes net/html pakedini kabul etmiş, gin-gonic gibi bir sürü başka paket onun üzerine kurulmuş, vs. Kısa bir aramadan sonra hangi pakedin herkes tarafından yeğlendiğini anlayıp kullanmaya başlıyorsun.

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 07:01:10 (UTC -08:00)