有些編譯器在寫程序時會自動生成死循環代碼,大多是使用for形式的,我們自己寫程序,經常用的while(1),所以有些不解,查詢網絡后得出以下結論 即 for(;;)和while(1)兩種死循環的區別: 1、 for(;;)死循環里的兩個;;代表兩個空語句,編譯器一般會優化掉它們,直接進入循環體。 while(1)死循環里的1被看成表達式,每循環一次都要判斷常量1是不是等于零。 即,相對來說for式死循環更加高效一點 當然以上條件成立還要看編譯器的優化,一些編譯器優化的兩者并無區別,但是,并非所有的編譯器都做了這樣的優化。 2、for(;;)只有7個字符和while(1)相比省一個字符 3、for(;;)方式循環,,好像有點丑(個人愚見)
新聞熱點
疑難解答