PDA

Tam Sürümünü Görmek İçin : C derleyicileri <yeni konu>


aktasm
27/09/2005, 00:27
arkadaslar windows altında örneğin turbo C (yada windowsta calısan baska bir derleyıcı) unix altında da gcc kullanan, bu derleyıcılerde poınter kullanımı arasındakı farklılıkları soruyorum sızlere
mutlaka cogunuz farklı ısletım sıstemlerınde herhangı derleyıcılerle poınter kullandınız ıste bu kullanımdakı farklılıklar sunda boyle sunda boyle dıye nasıl bulabılır tesekkur ederım..


Euclides
27/09/2005, 00:53
PE ve ELF dosya formatlarını araştır.1 program yaz tüm temel tiplerin pointer'larının büyüklerini ekrana yazdırsın ve poniterlarla 4 işlem yapsın, sıfır optimizasyonla derle. Güzel bir debugger ile aç bak bakalım kodara neler yapıyormuş gör.

acehreli
27/09/2005, 00:56
C derleyicileri C standardinin belirledigi dili gerceklerler. Sonucta hepsi birer C derleyicisidir; C'nin olanaklari hepsinde ayni sekilde kullanilir. Ornegin isaretcilerin bildirimleri, tanimlari ve kullanimlari hepsinde aynidir:


int sayi = 7;
int * isaretci = &sayi; // bildirim ve tanim
*isaretci = 42; // kullanim


O yuzden, C programcilari acisindan isaretcilerin kullanimi acisindan derleyiciler arasinda hicbir fark yoktur.

Eger derleyicilerin geri planda isaretcileri nasil gerceklediklerini soruyorsan, cok ozellesmis bir bilginin pesindesin. Bunu ancak derleyici tasarimcilari bilebilir, kendi programlarini yazan benim gibi kullanicilar degil.

Meraktan veya cok ender durumlarda gercekten gerektigi icin derleyicinin urettigi assembly koduna bakilabilir tabii. Acaba bulman gereken cevap bu mu? "Farkliliklari derleyicilerin assembly ciktisina bakarak bulurum" mu demen bekleniyor acaba?

Ali

Sabahi
27/09/2005, 01:13
Aklima bir tek endianness problemi yuzunden pointerlarin farkli sekilde ele alinabilecegi geliyor ki sadece casting yapildiginda. Bu konuda biraz arastir belki isine yariyacak birseyler cikar altindan.

aktasm
27/09/2005, 09:20
arkadaslar windows ve unix arasında su 32-bit su 64-bit tabanlı isletim sistemi diebilirmiyiz eger diebiliyorsak o isletim sistemlerinde yazılmıs derleyıcılerın poıntera verdıgı agırlıkt ao oranda farklı oalcak ornegın 64-bit unix icin farklı 32-bit windows icin ayrı olcak yanılıyormuyum kapladıkları yerler degısecek
Yardımlarınızı beklıyorum!!