首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 到 IL 深度解析:第4章 關鍵字與操作符 (下)(12) - 三元操作符 ?: 與 & 邏輯與的 IL 實現

     編輯:關於C語言

三元操作符 ?: 的分支結構

j = i >= 20 ? "hi" : "bye" 編譯為:條件判斷 bge.s 跳至真分支載入 "hi",假則繼續載入 "bye",最後統一存儲並輸出。IL 中無法區分原始碼使用 if-else 還是 ?:。

邏輯與 (&) 的位元運算實現

& 不短路,兩側皆評估。IL 使用 clt、ceq 產生兩個 0/1 結果,再以 and 指令做位元與,最後 brfalse.s 決定是否執行區塊。

// C# 代碼
if (i >= 4 & j > 1) Console.WriteLine("& true");

IL 關鍵序列:clt ceq (i>=4) → cgt (j>1) → and → brfalse.s。

結論

三元操作符與 if-else 編譯結果相同;&/| 為位元邏輯,無短路,編譯為完整評估後 and/or 指令。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved