2011-09-23 8 views
5

मैं पहली बार के लिए पीसी एक प्रकार का वृक्ष उपयोग कर रहा हूँ के लिए। मैं अपने कोड को "लिफ्टिंग" कर रहा था, जब पीसी लिंट ने मुझे अपने while(TRUE) के बारे में चेतावनी दी थी।पीसी एक प्रकार का वृक्ष है, जबकि (TRUE) बनाम (;;)

यह यह क्या कहते हैं:

716: जबकि (1) ... - प्रपत्र की एक निर्माण, जबकि (1) ... मिला था।

इस जबकि एक संदर्भ एक बूलियन उम्मीद में एक निरंतर का प्रतिनिधित्व करता है, यह एक प्रोग्रामिंग नीति जिससे अनंत छोरों इस संरचना के साथ उपसर्ग हैं प्रतिबिंबित कर सकते हैं। इसलिए इसे एक अलग संख्या दी जाती है और को सूचनात्मक श्रेणी में रखा गया है। अनंत लूप उपसर्ग का अधिक पारंपरिक रूप (;;) के लिए है।

मैं इस कथन समझ में नहीं आया। क्या कोई इसे समझने में मेरी मदद कर सकता है?

+2

'जबकि (TRUE)' अनंत लूप नहीं हो सकता है कुछ एक 'TRUE' को' 0' सेट अगर जबकि वहाँ उस के साथ होने के लिए के लिए कोई रास्ता नहीं है 'के लिए (;;)'। –

+2

@ डैन डी, यकीन है कि - हम सब के बाद प्रीप्रोसेसर के बारे में बात कर रहे हैं। कैसे (#) के लिए परिभाषित करें (;;) अगर (0) '? ;-) –

+1

मुझे पता है कि यह किस बारे में बात कर रहा है लेकिन यह एक अजीब स्पष्टीकरण है जो मुझे कहना है। –

उत्तर

5

पाठ का कहना है कि हालांकि while(TRUE) (जो while(1) में preprocessed हो जाता है) एक पूरी तरह से वैध अनंत लूप है, अनंत लूप लिखने के अधिक परंपरागत रूप

for(;;) 
{ 
    ... 
} 

है, क्योंकि यह किसी भी मूल्यों का उपयोग नहीं करता सब और इसलिए कम त्रुटि प्रवण है।

3

इसमें कहा गया है कि अधिक परंपरागत अनंत लूप for(;;), जो मैं कहेंगे एक विवाद-दावा है, और कहा कि यह एक "सूचना के श्रेणी" के रूप में इस संरचना में वर्गीकृत है खोजने है - मुझे लगता है कि अगर आप for(;;) बजाय प्रयोग किया यह होगा चले जाओ। मैंने हमेशा इन्हें while(1) के रूप में लिखा है और कभी भी for(;;) स्वयं नहीं लिखा है। यदि आप जो अपेक्षा करते हैं वह करता है, तो मैं इस पर पीसी लिनटी के निष्कर्षों को अनदेखा कर दूंगा या इसे TRUE को फिर से परिभाषित करने के बारे में चिंतित हूं क्योंकि किसी ने TRUE को फिर से परिभाषित किया है, तो आपका लूप बिल्कुल नहीं चल रहा है।

+6

और वैसे भी, अगर कोई 'TRUE' नए सिरे से परिभाषित, यह आपके संकट है कि एक practicular पाश असीम नहीं चलता है की कम से कम हो जाएगा करने के लिए एक बहुत तेज गति टक्कर है:। -) –

संबंधित मुद्दे