Bu C programının C++ karşılığı nedir

Başlatan Erdem , 08 Ağustos 2012, 21:14:58

Erdem

Alıntı yapılan: gerbay - 29 Eylül 2012, 20:44:33
  foo * pFoo = new (buf) foo();


Bu mesaj gözümden kaçmış.

gerbay gösterdiğin kod derlenmiyor. Acaba böyle mi demek istedin.

   foo * pFoo = (foo*)malloc(1024 * sizeof(foo));


Eğer öyleyse bunun C++ eşdeğeri şudur.

    foo * p = new foo[1024];

speak48

#16
Alıntı Yap
hocam nasıl bir yardım gerekiyor?

benim beklediğimde buydu şimdi meramımı bidaha anlatayım
forum cevizede yazıcam eğer aktif edilirsem

amacım yaptığım donanım tasarımını (verilog for fpga) proteus gibi görsel bir şekilde simule edebilmek.
https://www.picproje.org/index.php/topic,40408.0.html
burada anlattım ama tınlayan olmadı
https://www.picproje.org/index.php/topic,38922.0.html
buradada giriş yaptım ilgilenen olmadı

şimdiki üzerinde uğraştığım yöntem systemc ile görsel donanım simulasyonu yapmak
donanım basit vga ya renk sürmek simulasyonda ise bir pencerede 640*480 pixel vga nın simule edilmesi

daha önce devcppta winbgl kütüphanesiyle yaptım ama bir frame i  yaklaşık 10 sn de aldım.
şimdi önce apilerle visualc++ ta yapmak sonra hızını beeğenmezsem donanım değil sadece vga kısmını modelsime entegre edicem

biraz systemc kütüphanesini inceleyince bunun bir konsol uygulası zorunluluğu getiriyor ve bir systemc thereadinde pencere cağırılmalı ve her clokta pixel sürülmeli.
ilk aşamada donanımı basitleştire biliriz
sadece x,y,renk ve  cloktan  oluşan bir renk sürücü ve vga alıcı sync sinyalleri ile uğraşmıyalım diye

daha güzel anlatmak isterim ama bende toparlıyamıyorum


mesaj birleştirme:: 29 Eylül 2012, 22:14:22

devcpp yaptığımın derlenmişi böle bişi yapılcak yani
http://www.mediafire.com/?28sv1i4at4yc2gc

speak48

işin içine systemc girindiğinden denedim ama yemedi
systemc kütüphanesini ben C++ builder de derleyemedim.
nettede derleyeni görmedim devcpp ve visualc++ ta derlenebiliyo.

birde C++ builder deki kodu modelsime nasıl entegre edebiliriz imkansız modelsimde mingw derleyicisi kullanıyor.
C++ builder in winbgl ile devcpp takinden hızlı sonuç vereceğinin garantisi yok
sadece bu iş için bide C++ builder i  öğrenmiyelim.

benim düşüncem buradaki gui için api ideal
ama yöntem konusunda her türlü öneriye açığım.



Erdem

Alıntı yapılan: gerbay - 29 Eylül 2012, 20:44:33
Erdem hocam madem o kadar detaya giriyorsun new in şu şekilde kullanımına da değinmelisin;

class foo { };

int main()
{
  char buf[1024];
}


O zaman satır satır incelersek bu ilk satır 1024 baytlık buf isminde bir dizi oluşturur. Bu satırın altına şöyle bu bellek alanının ilk baytını gösteren place isimli bir gösterge ekleyebilirdik.

  void* place = buf;


  foo * pFoo = new (buf) foo();


3. satır sadece sınıfın kurucu işlevini çağırır. foo::foo() Burada new işlecine geçilen göstergenin geçerli bir bellek alanını göstermesi programcının sorumluluğundadır.

Ayrıca sınıfın bozucu işlevi açıkça çağrılmalıdır.

  pFoo->~foo();


Bu yöntemi oluşturduğumuz nesne için bellekte bizim belirlediğimiz bellek alanında yer ayrılması için kullanıyoruz.

speak48

https://www.picproje.org/index.php/topic,38922.msg307648.html#msg307648
buradaki paylaştığım kod baya yapmak istediğime yaklaştı
sonuçta bir systemc threadinde pencere yaratılcak diğerinde renk bilgisi sürülcek
systemcsiz bu kodu istedigim şekle soktuktan sonra systemc ye entegre etmesi var

benim merak ettiğim bu işlerle ilgilenen varmı varsa nerde bu forumda niye yok
bulabildiğim sadece 3 tane tez var odtüde yapılmış bu alanda.


speak48

zaten tüm işler öyle gerçeklenmezmi öce bi parça sonra bi parça sonrada birleştirmek.
bende şuan zaten o apileri inceliyordum.
tüm incelemeyi tamamlamadan denemedim daha
winblg de apileri kullanarak pixel pixel pencereye sürebiliyor.
ama hızda önemli onlarada bakıyordum.
mesela pixel pixel mi sürmek yoksa pixelleri bi buffer yada bitmap her ne ise bir frame doluncamı sürmek daha iyi olur.