2016-03-31 29 views
-3

böyle bir kod parçası bakıyorum:Boş bir döngü, C kodunda ne ifade eder?

for(;;){ 
//pieces of code 
} 

tam iki noktalı virgül ne yaparsınız?

+0

sonsuz bir döngü. Ancak, yeni başlayanların herhangi bir C öğreticisi, eğer durum atlanırsa, bunun doğru olduğu varsayılır. –

+2

Sınırsız bir döngüdür, başlatıcı olmaksızın koşulsuzdur ve artım yoktur. –

+2

Hiçbir şey yapmıyorlar. Hiçbir şey başlatılmaz, hiçbir şey kontrol edilmez ve herhangi bir döngüden sonra hiçbir şey değiştirilmez. Bütün bunları yapmanın başka bir yoluna ihtiyacın var. –

cevap

2

Bu döngünün sonsuza kadar kalacağı anlamına gelir.

For-loop şöyle görünür: for(<init>; <check bounds>; <increment>). Burada her şey ihmal edilir. Ama noktalı virgülleri çıkaramayız, işte buradalar.

-2

Bu, (TRUE) öğesine eşdeğerdir. Anlamı asla bitmeyecek. Genellikle çok iş parçacığı ve gömülü programlama için kullanılır. Gömülü kodunda bir örnek program akış:

int main() 
{ 
    //initialize hardware here 
    //start the different threads (to monitor and control hardware) 
    for(;;){ 
     //do some stuff 
     //sleep to save power 
    } 
} 
+0

Çok kullanımlı bir uygulamada bunu kullanmanın bir örneği nedir? – ForceBru

+0

Çok iş parçacıklı ve gömülü programlama bile bununla ne ilgisi var? –

+0

örnek – MIbrah

3

sen (<a>, <b>, <c> ifadelerdir olduğu) bir döngü için

for(<a>; <b>; <c>) { 
    // ... 
} 

sadece süslü bir şekilde

yazmak için, bildiğiniz gibi
<a>; 
while(<b>) { 
    // ... 
    <c>; 
} 

<b> boşsa, varsayılan olarak doğru olacaktır, böylece for(;;), while(1)'a eşdeğerdir.

+0

nitpick ekledi; (1) için (;;) 'nin bir testi yoktur, oysa (1) bir testi vardır. –

+0

Not: 'while()' derlenmez.' için 'durumun tamamen atlanabileceği özel bir özelliği vardır ama "while" için, * parşömenlerde bir şey olması için * var. –

+0

@TomTanner Aslında, bir test var ([spec] 'e göre (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n157 0.pdf), bölüm 6.5.8.3) boş bir for döngüsünde, "Kesik bir [kontrol edici ifade], sıfırdan farklı bir sabit ile değiştirilir." Gerçekte, test her iki durumda da derleyici tarafından en iyi duruma getirilir. derlenmiş program tam olarak aynıdır. – Frxstrem