को समझना मैं कश्मीर & आर किताब से सी जानने के लिए हो रही एक अजगर प्रोग्रामर हूँ। यह एक बहुत ही मामूली सवाल की तरह प्रतीत होता है, लेकिन फिर भी मैं स्टंप हो गया हूं। नीचे संलग्न K& आर (आरआईपी रिची!) पुस्तक से कोड का एक स्निपेट है जो atoi() फ़ंक्शन लागू करता है।एक atoi() फ़ंक्शन
atoi(s) /*convert s to integer */
char s[];
{
int i, n, sign;
for (i=0; s[i]==' '||s[i] == '\n' || s[i] == '\t'; i++)
; /* skip whitespace */
sign = 1;
if (s[i] == '+' || s[i] = '-') /* sign */
sign = (s[i++] == '+') ? 1 : -1;
for (n=0; s[i] >= '0' && s[i] <= '9'; i++)
n = 10 * n + s[i] - '0';
return (sign * n);
}
मेरे सवालों का:
1) पहली पाश 'के लिए' वैध characaters की संख्या की गणना के अतिरिक्त कोई उद्देश्य पूरा करता है?
2) यदि (1) सत्य है, तो पहला लूप 'i' के मान को मान्य वर्णों की संख्या में सेट करता है - लूप के लिए दूसरा कैसे 0 को रीसेट किए बिना काम करता है?
उदाहरण के लिए कहें मैं फ़ंक्शन में इनपुट के रूप में '2 9 2 9' दर्ज करता हूं। लूप के लिए पहला मैं 3 से सेट करता हूं, तो शेष कार्य कैसे काम करता है? मेरे पास मेरी मूल बातें सभी गड़बड़ हो सकती हैं लेकिन किसी भी मदद की वास्तव में सराहना की जाएगी। धन्यवाद, -क्रेग
मुझे पता नहीं था कि सी _that_ भयानक है। –
मुझे लगता है कि कोड के टुकड़े को समझने का सबसे अच्छा तरीका यह है कि इसे डीबगर (उदा। जीडीबी) के साथ निष्पादित करना है, और चरण-दर-चरण आगे बढ़ें। कोड को पढ़ने और अंदर की टिप्पणियां भी मदद कर सकती हैं। – eyalm
@PatrickB .: old_ सी आधुनिक सी _very है कि लग रहा है ... बिल्कुल वैसा ही :) – Mat