मैं "द सी प्रोग्रामिंग लैंग्वेज" (K & R) पुस्तक के कोड के इस टुकड़े को संकलित करने की कोशिश कर रहा हूं। यह UNIX कार्यक्रम का एक नंगे हड्डियों वाला संस्करण है wc:
#include <stdio.h>
#define IN 1; /* inside a word */
#define OUT 0; /* outside a word */
/* count lines, words and characters in input */
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}
और मुझे निम्नलिखित त्रुटि मिल रही है:
$ gcc wc.c
wc.c: In function ‘main’:
wc.c:18: error: ‘else’ without a previous ‘if’
wc.c:18: error: expected ‘)’ before ‘;’ token
इस पुस्तक का दूसरा संस्करण 1988 से है और मैं सी के लिए बहुत नया हूँ। शायद यह संकलक संस्करण के साथ करना है या शायद मैं सिर्फ बकवास कर रहा हूं।
मैंने आधुनिक सी कोड में mainफ़ंक्शन का एक अलग उपयोग देखा है :
int main()
{
/* code */
return 0;
}
क्या यह एक नया मानक है या मैं अभी भी टाइप-कम मुख्य का उपयोग कर सकता हूं?
|| c = '\t')। क्या यह उस पंक्ति के अन्य कोड के समान प्रतीत होता है?