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?
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?
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.
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
}
}
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.
nitpick ekledi; (1) için (;;) 'nin bir testi yoktur, oysa (1) bir testi vardır. –
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. –
@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
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. –
Sınırsız bir döngüdür, başlatıcı olmaksızın koşulsuzdur ve artım yoktur. –
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. –