Bağlıdır ve bu sadece C30 için değil tüm aletler için geçerlidir.
Optimizasyonlar genellikle kodu çeşitli şekillerde kaldırır ve / veya yeniden yapılandırır. Anahtar ifadeniz bir if / else yapısıyla yeniden uygulanabilir veya bazı durumlarda hep birlikte kaldırılabilir. y = x * 16, bir dizi sol vardiya vb.Ile değiştirilebilir, ancak bu son optimizasyon türü genellikle hala aşılabilir, ancak çoğunlukla sizi alan kontrol ifadesinin yeniden yapılandırılmasıdır.
Bu, bir hata ayıklayıcıyı C kodunuzda atlamayı imkansız hale getirebilir, çünkü C'de tanımladığınız yapılar artık mevcut değildir, derleyici tarafından derleyicinin daha hızlı olacağına veya daha az yer kullanacağına inandığı bir şeyle değiştirilmiş veya yeniden sıralanmıştır. Ayrıca kesme noktalarının C listesinden ayarlanması imkansız olabilir, çünkü kırılma talimatınız artık mevcut olmayabilir. Örneğin, bir if ifadesinin içinde bir kesme noktası ayarlamayı deneyebilirsiniz, ancak derleyici if öğesini kaldırmış olabilir. Bir süre içinde veya döngü için bir kesme noktası ayarlamayı deneyebilirsiniz, ancak derleyici bu döngüyü artık var olmayacak şekilde açmaya karar verdi.
Bu nedenle optimizasyon kapalıyken hata ayıklayabilirsiniz, genellikle daha kolaydır. Optimizasyonları her zaman yeniden test etmelisiniz. Bu, önemli bir şeyi kaçırdığınızı volatile
ve bunun aralıklı arızalara (veya başka bir tuhaflığa) neden olduğunu öğrenmenin tek yolu ile ilgilidir .
Gömülü geliştirme durumunda, yine de optimizasyonlara dikkat etmelisiniz. Özellikle kodun zamanlama açısından kritik bölümlerinde, örneğin bazı kesmeler. Bu durumlarda, montajdaki kritik bitleri kodlamanız veya derleme direktiflerini kullanmanız gerekir; böylece bu bölümlerin optimize edilmediğinden emin olun, böylece sabit bir yürütme süresine veya sabit bir en kötü durum çalışma süresine sahip olduklarını bilirsiniz.
Diğer gotcha uC içine kod sığdırma olabilir, sadece kod çip içine sığdırmak için kod yoğunluk optimizasyonları gerekebilir. Bu, bir ailenin en büyük ROM kapasitesi uC ile başlamak ve kodunuz kilitlendikten sonra üretim için sadece daha küçük bir tane seçmek için genellikle iyi bir fikir olmasının bir nedenidir.