![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
![]() |
#1 |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 不知有無支援 動態組合 這種程式語言 或 語法範例
比如 一個程式有 A、B、C 等 副程式 傳統程式設計之 主程式 如下 語法:
For i = 0 to n If x.check = 1 then Call A If y.check = 1 then Call B If z.check = 1 then Call C Next 動態組合之 主程式 如下 語法:
ret = GetSUBAddress(Z) If x.check = 1 then Call SubAdd(ret, GetSUBAddress(A)) If y.check = 1 then Call SubAdd(ret, GetSUBAddress(B)) If z.check = 1 then Call SubAdd(ret, GetSUBAddress(C)) For i = 0 to n Call Z Next SubAdd 根據 函式的位址 負責將 A、B、C 串接成 Z Z 是動態組合副程式 其作用是可省略每次的 If x.check = 1 then If y.check = 1 then If z.check = 1 then 當 n 是一筆很大的數值時,將可節省下相當的運算時間 當然前提是 Z 不能有多餘的判讀 否則就失去其意義 ====================== 用組合語言好像可以改寫的出來 不過...太麻煩了 自己可以想到的是 根據 A、B、C 大小 及 If x.check = 1 then If y.check = 1 then If z.check = 1 then 結果 宣告一個空白的記憶體 再將 A、B、C 稍做修改的內容 傾印入內 做成一個全新的 可執行副程式 只是中間好像不是這麼單純的樣子... |
![]() |
送花文章: 2055,
![]() |
向 mini 送花的會員:
|