123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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;
- }
|