2016-03-30 39 views
0

Bu şartları kullanan bir ödevim var ve profesörümün dersi açık bir şekilde açıklamadı. C kodlama konusunda yeniyim ve bu kavramları anlamakta zorlanıyorum. someInt 0 ise, bu örnekteBir C kodu, optimizasyon ile/optimizasyon olmadan düşüyor ve derleniyor?

switch(someInt) { 
case 0: 
    // Do stuff 
case 1: 
    // Do more stuff 
    break; 
} 

Çıkan break deyimi, isabet önce kodun hem yorumladı bölümleri çalıştırır, a anahtar durumu başka bir davaya "aracılığıyla düşer" ne zaman

+0

Daha fazla bilgi vermeden söylemesi zor. Profesörün ısırıyor mu? Neden ona sormuyorsun? – Olaf

+0

Anında cevap almak için daha çok arıyordum, ama şansa sahip olduğumda ona soracağım. –

+0

En iyileştirme yapılmadan derleyici az çok kodunuzu makine yönergelerine çevirir. Optimizasyon ile derleme, derleyicinin hala aynı çıktıyı üreten olası en hızlı kodu oluşturmaya çalıştığı anlamına gelir (* "gözlemlenebilir davranış" *). – MikeMB

cevap

2

Fallthough olduğunu anahtar. Her anahtar bölümünden sonra bir break'u eklemeyi unutmak ortak bir başlangıç ​​hatasıdır.

switch(someInt) { 
case 0: 
    // Do stuff 
    break; 
case 1: 
    // Do more stuff 
    break; 
} 

optimizasyon basitçe izin hızlandırmak için yollar derleyici rakamı optimization option dışarı kullanarak atıfta ile derleniyor: Eğer case 0 olmak için sadece bu şekilde görünecektir, bu case 1 için kod kendi kodunu ve değil yürütmek veya programı basitleştirin.

İlgili konular