Saya mencoba untuk mengumpulkan potongan kode ini dari buku "The C Programming Language" (K & R). Ini adalah versi sederhana dari program 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);
}
Dan saya mendapatkan kesalahan berikut:
$ gcc wc.c
wc.c: In function ‘main’:
wc.c:18: error: ‘else’ without a previous ‘if’
wc.c:18: error: expected ‘)’ before ‘;’ token
Edisi ke-2 dari buku ini adalah dari tahun 1988 dan saya cukup baru mengenal C. Mungkin ada hubungannya dengan versi kompiler atau mungkin saya hanya berbicara omong kosong.
Saya telah melihat dalam kode C modern penggunaan mainfungsi yang berbeda:
int main()
{
/* code */
return 0;
}
Apakah ini standar baru atau apakah saya masih dapat menggunakan utama tanpa tipe?
|| c = '\t'). Apakah itu tampak sama dengan kode lain di baris itu?