2010-10-07 17 views
5

gcc'nin son sürümlerinin, çağrıları işlev çağrıları yoluyla doğrudan çağrılara dönüştürmede çok iyi olduğunu duydum. Ancak, bu konuda web'de herhangi bir şey veya gcc'nin kaynak kodu ile hızlı bir şekilde bulamıyorum. Bunun gerçekten doğru olup olmadığını bilen var mı, eğer öyleyse, bunu yapmak için hangi algoritmayı kullanır?gcc, çağrıları işlev çağrıları yoluyla doğrudan çağrılara dönüştürmek için ne kullanır?

+0

ama genel olarak, bir derleyici eğer Bir işlev işaretçisinin belirli bir çağrı alanında sadece belirli bir değere sahip olabileceğini kanıtlayabilir, daha sonra bu çağrı, işlev işaretçisi aracılığıyla dolaylı bir çağrı yerine belirli bir işaretçi değerine doğrudan çağrı olarak kodlanabilir. –

cevap

0

Bu sadece bir değer yayılımı biçimidir. Nesne işaretçisinin p (sanal bir sınıfa) her zaman belirli bir somut sınıfın bir nesnesine işaret ettiğini kanıtlayabilirsem, o zaman bu sınıfın üye işlevlerini doğrudan arayabilirim. Eğer değilse, vtable üzerinden gitmeliyim.

İlgili konular