Lahit1
Her iki ifade de (&buff[1]
ve buff + 1
) aynı sonucu verir, çünkü ikisi de buff
dizisinin ilk elemanından itibaren 1 birim ofsetlenmiş adresi işaret eder. Ancak performans açısından, modern C derleyiciler (GCC, Clang, MSVC gibi) her iki ifadenin de optimize edilmesi sırasında aynı işlem kodunu üretme eğilimindedir. Yani, pratikte aralarında performans açısından bir fark yoktur.
Yine de, yüksek performans gereksinimli bir ortamda daha net bir optimizasyon istiyorsanız, derleyicinizin optimizasyon bayraklarını (-O2
, -O3
gibi) kullanmak veya Assembly çıktısını analiz etmek, daha kesin bir bilgi sağlar. Çoğu durumda, bu tür küçük offset işlemlerinde derleyiciler fazladan bir performans kaybına yol açmadan aynı sonucu verecek şekilde optimize eder.