Annotation of researchv10dc/cmd/lcc/tst/switch.c, revision 1.1.1.1

1.1       root        1: main()
                      2: {
                      3:        int i; char *s;
                      4: 
                      5:        for (s = "bfnrtvx"; *s; s++)
                      6:                printf("%c = 0x%x\n", *s, backslash(*s));
                      7:        f();
                      8:        g();
                      9:        h();
                     10:        for (i = 0x1000000; i&0x7000000; i += 0x1000000)
                     11:                big(i);
                     12:        limit();
                     13:        return 0;
                     14: }      
                     15: 
                     16: backslash(c)
                     17: {
                     18:        switch (c) {
                     19:        case 'b':
                     20:                return '\b';
                     21:        case 'f':
                     22:                return '\f';
                     23:        case 'n':
                     24:                return '\n';
                     25:        case 'r':
                     26:                return '\r';
                     27:        case 't':
                     28:                return '\t';
                     29:        case 'v':
                     30:                return '\v';
                     31:        }
                     32:        return c;
                     33: }
                     34: 
                     35: f() {
                     36:        int i, x = 0, y;
                     37: 
                     38:        printf("f:\n");
                     39:        for (i = 0; i <= 20; i++) {
                     40:                y = i;
                     41:                switch (i) {
                     42:                case 1: x = i; break;
                     43:                case 2: x = i; break;
                     44:                case 7: x = i; break;
                     45:                case 8: x = i; break;
                     46:                case 9: x = i; break;
                     47:                case 16: x = i; break;
                     48:                case 17: x = i; break;
                     49:                case 18: x = i; break;
                     50:                case 19: x = i; break;
                     51:                case 20: x = i; break;
                     52:                }
                     53:                printf("x = %d\n", x);
                     54:        }
                     55: }
                     56: 
                     57: g() {
                     58:        int i;
                     59: 
                     60:        printf("g:\n");
                     61:        for (i = 1; i <= 10; i++)
                     62:                switch (i) {
                     63:                case 1: case 2: printf("1 %d\n", i); break;
                     64:                case 3: case 4: case 5: printf("2 %d\n", i); break;
                     65:                case 6: case 7: case 8: printf("3 %d\n", i);
                     66:                default:
                     67:                        printf("d %d\n", i); break;
                     68:                case 1001: case 1002: case 1003: case 1004:
                     69:                        printf("5 %d\n", i); break;
                     70:                case 3001: case 3002: case 3003: case 3004:
                     71:                        printf("6 %d\n", i); break;
                     72:        }
                     73: }
                     74: 
                     75: h()
                     76: {
                     77:        int i, n=0;
                     78: 
                     79:        printf("h:\n");
                     80:        for (i = 1; i <= 500; i++)
                     81:                switch (i) {
                     82:                default: n++; continue;
                     83:                case 128: printf("i = %d\n", i); break;
                     84:                case 16: printf("i = %d\n", i); break;
                     85:                case 8: printf("i = %d\n", i); break;
                     86:                case 120: printf("i = %d\n", i); break;
                     87:                case 280: printf("i = %d\n", i); break;
                     88:                case 264: printf("i = %d\n", i); break;
                     89:                case 248: printf("i = %d\n", i); break;
                     90:                case 272: printf("i = %d\n", i); break;
                     91:                case 304: printf("i = %d\n", i); break;
                     92:                case 296: printf("i = %d\n", i); break;
                     93:                case 288: printf("i = %d\n", i); break;
                     94:                case 312: printf("i = %d\n", i); break;
                     95:                }
                     96:        printf("%d defaults\n", n);
                     97: }
                     98: 
                     99: big(x) unsigned x; {
                    100:        switch(x&0x6000000){
                    101:        case -1:
                    102:        case -2:
                    103:        case 0x0000000:
                    104:                printf("x = 0x%x\n", x); break;
                    105:        case 0x2000000:
                    106:                printf("x = 0x%x\n", x); break;
                    107:        case 0x4000000:
                    108:                printf("x = 0x%x\n", x); break;
                    109:        default:
                    110:                printf("x = 0x%x (default)\n", x); break;
                    111:        }
                    112: }
                    113: 
                    114: #include <limits.h>
                    115: 
                    116: limit() {
                    117:        int i;
                    118: 
                    119:        for (i = INT_MIN; i <= INT_MIN+5; i++)
                    120:                switch (i) {
                    121:                case INT_MIN:   printf("0\n"); break;
                    122:                case INT_MIN+1: printf("1\n"); break;
                    123:                case INT_MIN+2: printf("2\n"); break;
                    124:                case INT_MIN+3: printf("3\n"); break;
                    125:                case INT_MIN+4: printf("4\n"); break;
                    126:                default:        printf("5\n"); break;
                    127:                }
                    128:        for (i = INT_MAX; i >= INT_MAX-5; i--)
                    129:                switch (i) {
                    130:                case INT_MAX:   printf("0\n"); break;
                    131:                case INT_MAX-1: printf("1\n"); break;
                    132:                case INT_MAX-2: printf("2\n"); break;
                    133:                case INT_MAX-3: printf("3\n"); break;
                    134:                case INT_MAX-4: printf("4\n"); break;
                    135:                default:        printf("5\n"); break;
                    136:                }
                    137: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.