switch
的底層實現機制根據
switch
需要判斷的表示式的複雜性和不同編譯器有所不同。一般情況下,
switch
有三種實現機制,分別是直接判斷、跳轉表和樹型結構。編譯器根據需要判斷表示式的複雜性並採用相應的的實現方式。下面分別研究這三種
switch機制(
1)直接判斷
當程式中不存在
break
的時候,反彙編中對應的跳到結束的
jmp也就不存在。以上反彙編**與
if···
else
類似。(
2)跳轉表
通過檢視記憶體資料得知
8214e4h
處的資料正是上面反彙編**中那
6個字串輸出函式位址。如果
switch
語句需要比較的表示式常量很多,而且這些表示式常量基本是按順序排列的,那麼使用跳轉表將會大大提高效率。
語句 switch語句
switch語句的特點如下 1 switch x 被選擇的內容 即x 只能是byte,short,int,char這四種型別 2 備選答案並沒有指定的順序,但是執行肯定是從第乙個case開始的,如果其中有匹配的case,執行完,通過該case的break就結束了switch。如果沒有匹配的case,...
if語句和switch語句
利用if else構建分支結構if 表示式 語句1 else else部分是可選的 語句2 當表示式為真的時候,執行語句1,當表示式為假的時候,並且有else語句就執行語句2。if語句巢狀的時候,每乙個else要與最近的且沒有else語句的if進行匹配。例 if i 0 if a b else 例 ...
C 語句 switch語句
switch 語句選擇乙個要執行的語句列表,此列表具有乙個相關聯的 switch 標籤,它對應於 switch 表示式的值.switch statement switch expression switch block switch block switch block 一組switch secti...