乙個小程式重新透視C語言Switch語句

2021-05-22 01:51:17 字數 630 閱讀 1474

最近看berkerly db的源**,在hash函式的hash4中一段**讓我很困惑,將其簡化如下:

/*ctest.c*/

void testswitch(int sw)while(--loop);}}

int main()

程式的輸出為

case 4:3

case 3:3

case 2:3

case 1:3

case 0:2

case 7:2

case 6:2

case 5:2

case 4:2

case 3:2

case 2:2

case 1:2

case 0:1

case 7:1

case 6:1

case 5:1

case 4:1

case 3:1

case 2:1

case 1:1

這表明switch語句確實就是使用了goto跳轉,所以可以將case植入到其它語句中,如本例中的while語句;case本身就是乙個標籤;

分析完這段**,我翻看了以前搞到手的c puzzles,發現其中已經收錄了這一puzzle,以前嫌麻煩,懶的看,需要用時才發現。學習源**!

用乙個小程式重新認識「 」與「 」

上午寫了個提 拐點的程式,很簡單,但是遇到提示選擇時用 取消 就會報錯。程式如下 using system using system.text using using autodesk.autocad.runtime using autodesk.autocad.databaseservices u...

乙個c語言程式

include include include void shuffle int wdeck 4 13 void deal int wdeck 4 13 char wface 13 char wsuit 4 int main char wface 13 int wdeck 4 13 printf 這...

乙個小C 窗體程式

這程式摘自 head first in c 一書,由東南大學出版社影印。此程式的關鍵點的很多 2.while visible 為了使程式在未關閉前,背景色一直漸變 3.system.threading.thread.sleep 10 程式在10秒後掛起 具體程式 如下 此窗體只有乙個button控制...