|
|
1.1 ! root 1: ! 2: typedef struct { int codes[3]; char name[6]; } Word; ! 3: ! 4: Word words[] = { ! 5: 1, 2, 3, "if", ! 6: { { 4, 5 }, { 'f', 'o', 'r' } }, ! 7: 6, 7, 8, {"else"}, ! 8: { { 9, 10, 11,}, 'w', 'h', 'i', 'l', 'e', }, ! 9: { 0 }, ! 10: }, *wordlist = words; ! 11: ! 12: int x[][5] = { 1, 2, 3, 4, 0, { 5, 6 }, { 7 } }; ! 13: int *y[] = { x[0], x[1], x[2], 0 }; ! 14: ! 15: ! 16: main() ! 17: { ! 18: int i, j; ! 19: ! 20: for (i = 0; y[i]; i++) { ! 21: for (j = 0; y[i][j]; j++) ! 22: printf(" %d", y[i][j]); ! 23: printf("\n"); ! 24: } ! 25: f(); ! 26: g(wordlist); ! 27: return 0; ! 28: } ! 29: ! 30: f() { ! 31: static char *keywords[] = {"if", "for", "else", "while", 0, }; ! 32: char **p; ! 33: ! 34: for (p = keywords; *p; p++) ! 35: printf("%s\n", *p); ! 36: } ! 37: ! 38: g(p) ! 39: Word *p; ! 40: { ! 41: int i; ! 42: ! 43: for ( ; p->codes[0]; p++) { ! 44: for (i = 0; i < sizeof p->codes/sizeof(p->codes[0]); i++) ! 45: printf("%d ", p->codes[i]); ! 46: printf("%s\n", p->name); ! 47: } ! 48: h(); ! 49: } ! 50: ! 51: h() ! 52: { ! 53: int i; ! 54: ! 55: for (i = 0; i < sizeof(words)/sizeof(Word); i++) ! 56: printf("%d %d %d %s\n", words[i].codes[0], ! 57: words[i].codes[1], words[i].codes[2], ! 58: &words[i].name[0]); ! 59: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.