112 lines · 2.3 KB · C
RawDownload
extern int printf(const char *format, ...);static void kb_wait_1(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                while (1)                    printf("error\n");            })        );        timeout--;    } while (timeout);}static void kb_wait_2(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                for (;;)                    printf("error\n");            })        );        timeout--;    } while (timeout);}static void kb_wait_2_1(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                do {                    printf("error\n");		} while (1);            })        );        timeout--;    } while (timeout);}static void kb_wait_2_2(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                label:                    printf("error\n");		goto label;            })        );        timeout--;    } while (timeout);}static void kb_wait_3(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                int i = 1;                goto label;                i = i + 2;            label:                i = i + 3;            })        );        timeout--;    } while (timeout);}static void kb_wait_4(void){    unsigned long timeout = 2;    do {        (1 ?            printf("timeout=%ld\n", timeout) :            ({                switch(timeout) {                    case 2:                        printf("timeout is 2");                        break;                    case 1:                        printf("timeout is 1");                        break;                    default:                        printf("timeout is 0?");                        break;                };                // return;            })        );        timeout--;    } while (timeout);}int main(){    printf("begin\n");    kb_wait_1();    kb_wait_2();    kb_wait_2_1();    kb_wait_2_2();    kb_wait_3();    kb_wait_4();    printf("end\n");    return 0;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t